ส่วนประกอบสวิงนั้นคล้ายคลึงกับส่วนประกอบ AWT แต่เพิ่มวิธีการใหม่ให้กับแต่ละส่วนประกอบและให้ส่วนประกอบขั้นสูงมากขึ้น
ส่วนประกอบพื้นฐานของสวิง:
1. ปุ่ม (JButton):
ปุ่มใน Swing สามารถแสดงภาพได้ และสามารถตั้งค่าปุ่มให้เป็นไอคอนเริ่มต้นสำหรับหน้าต่างได้ และสามารถกำหนดรูปภาพหลายภาพให้กับปุ่มเดียวได้
(1) วิธีการก่อสร้าง JButton ที่ใช้กันทั่วไป
JButton(ข้อความสตริง): ตัวอักษรที่แสดงบนปุ่ม
JButton(ไอคอนไอคอน): แสดงไอคอนบนปุ่ม
JButton(ข้อความสตริง ไอคอนไอคอน): ทั้งไอคอนและตัวอักษรจะปรากฏบนปุ่ม
(2) วิธีการที่ใช้กันทั่วไป:
b1.setEnabled(false); //ทำให้ปุ่มไม่สามารถใช้งานได้ในขณะนี้
b1.setToolTipText("..."): //ตั้งค่าข้อความคำแนะนำของปุ่ม
b1.setMnemonic(KeyEvent.VK_D); // ผูก b1 กับคีย์ alt+D
(3) รหัสกรณี:
คัดลอกรหัสรหัสดังต่อไปนี้:
คลาสสาธารณะ JButtonExample3 ขยาย JPanel ใช้งาน ActionListener {
ป้องกัน JButton b1, b2, b3;
JButtonExample3 สาธารณะ () {
ImageIcon leftButtonIcon = createImageIcon("right.gif");
ImageIcon middleButtonIcon = createImageIcon("middle.gif");
ImageIcon rightButtonIcon = createImageIcon("left.gif");
b1 = new JButton("ปุ่มกลางไม่ถูกต้อง (D)", leftButtonIcon);
b1.setVerticalTextPosition(AbstractButton.CENTER);//การจัดตำแหน่งกึ่งกลางแนวนอน
b1.setHorizontalTextPosition(AbstractButton.LEADING);//เทียบเท่ากับซ้าย
b1.setMnemonic(KeyEvent.VK_D); // ผูก b1 กับคีย์ alt+D
b1.setActionCommand("ปิดการใช้งาน");
b2 = ใหม่ JButton("M ปุ่มกลาง", middleButtonIcon);
b2.setVerticalTextPosition(AbstractButton.BOTTOM);
b2.setHorizontalTextPosition(AbstractButton.CENTER);
b2.setMnemonic(KeyEvent.VK_M); // ผูก b2 กับคีย์ alt+M
b3 = new JButton("E เปิดใช้งานปุ่มกลาง", rightButtonIcon);
b3.setMnemonic(KeyEvent.VK_E); // ผูก b3 กับคีย์ alt+E
b3.setActionCommand("เปิดใช้งาน");
b3.setEnabled(เท็จ);
//เพิ่มผู้ฟังเหตุการณ์ไปที่ 1 และ 3
b1.addActionListener(นี่);
b3.addActionListener(นี่);
//ตั้งค่าข้อความแจ้งของปุ่ม
b1.setToolTipText("การคลิกปุ่มนี้จะทำให้ปุ่มกลางใช้งานไม่ได้!");
b2.setToolTipText("คลิกปุ่มนี้ ไม่มีเหตุการณ์เกิดขึ้น!");
b3.setToolTipText("การคลิกปุ่มนี้จะทำให้ปุ่มกลางใช้งานได้");
//เพิ่มปุ่มไปที่ JPanel
เพิ่ม(b1);
เพิ่ม(b2);
เพิ่ม(b3);
-
การกระทำที่เป็นโมฆะสาธารณะดำเนินการ (ActionEvent e) {
ถ้า ("ปิดใช้งาน".เท่ากับ(e.getActionCommand())) {
b2.setEnabled(เท็จ);
b1.setEnabled(เท็จ);
b3.setEnabled(จริง);
} อื่น {
b2.setEnabled(จริง);
b1.setEnabled(จริง);
b3.setEnabled(เท็จ);
-
-
ป้องกัน ImageIcon แบบคงที่ createImageIcon (เส้นทางสตริง) {
java.net.URL imgURL = JButtonExample3.class.getResource(เส้นทาง);
ถ้า (imgURL != null) {
ส่งคืน ImageIcon ใหม่ (imgURL);
} อื่น {
System.err.println("ไม่พบไฟล์: " + path);
กลับเป็นโมฆะ;
-
-
โมฆะคงที่สาธารณะ main (String [] args) {
//ตั้งค่าเพื่อใช้อินเทอร์เฟซการแกว่งใหม่
//ให้คำแนะนำว่า JFrame ที่สร้างขึ้นใหม่ควรมีการตกแต่งหน้าต่างตามลักษณะปัจจุบันหรือไม่ (เช่น เส้นขอบ วิดเจ็ตสำหรับปิดหน้าต่าง ชื่อ ฯลฯ)
JFrame.setDefaultLookAndFeelDecorated(จริง);
//สร้างแบบฟอร์ม
JFrame frame = ใหม่ JFrame("ปุ่มมังกรน้อย");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//สร้างพาเนล
JButtonExample3 newContentPane = ใหม่ JButtonExample3();
newContentPane.setOpaque (จริง);
frame.setContentPane(newContentPane);
//แสดงแบบฟอร์ม
กรอบ.แพ็ค();
frame.setLocation(300, 200);
frame.setVisible(จริง);
-
-
ภาพหน้าจอการทำงาน:
2. กล่องคำสั่งผสม (JComboBox):
คำอธิบายโดยละเอียดเกี่ยวกับวิธีใช้กล่องคำสั่งผสม (รายการแบบเลื่อนลง JComboBox) และตัวอย่าง:
วิธีการก่อสร้าง:
* JComboBox() สร้างส่วนประกอบ JComboBox
* JComboBox(ComboBoxModel model) สร้างส่วนประกอบ JComboBox ตามโมเดล
* JComboBox(Objext[] items) ใช้อ็อบเจ็กต์อาร์เรย์เพื่อสร้างส่วนประกอบ JComboBox
* JComboBox (รายการเวกเตอร์) ใช้วัตถุ Vector เพื่อสร้างส่วนประกอบ JComboBox
วิธีการที่ใช้กันทั่วไป:
-
ตัวอย่างที่ครอบคลุม:
คัดลอกรหัสรหัสดังต่อไปนี้:
import java.awt.*; /* ประกอบด้วยคลาสทั้งหมดสำหรับการสร้างส่วนต่อประสานกับผู้ใช้และการวาดภาพกราฟิก -
import javax.swing.*; /* จัดเตรียมชุดส่วนประกอบที่ "มีน้ำหนักเบา" และพยายามทำให้ส่วนประกอบเหล่านี้ทำงานในลักษณะเดียวกันในทุกแพลตฟอร์ม */
คลาสสาธารณะ JComboBoxDemo ขยาย JFrame {
JComboBoxDemo สาธารณะ () {
-
* คอนเทนเนอร์เป็นคลาสหลักของคอนเทนเนอร์ทั้งหมดและเป็นคลาสย่อยของคลาสส่วนประกอบภาษา Java คอนเทนเนอร์คือส่วนประกอบที่มีหน้าที่รองรับส่วนประกอบและคอนเทนเนอร์อื่น ๆ
* องค์ประกอบพื้นฐานที่สุดของอินเทอร์เฟซผู้ใช้แบบกราฟิก Java คือส่วนประกอบ ส่วนประกอบคืออ็อบเจ็กต์ที่สามารถแสดงบนหน้าจอแบบกราฟิกและโต้ตอบกับผู้ใช้ เช่น ปุ่ม กล่องข้อความ ฯลฯ
* ใน Java คอมโพเนนต์มักจะอยู่ในคอนเทนเนอร์บางตัว และใช้เมธอด this.getContentPane() เพื่อส่งคืนอ็อบเจ็กต์ contentPane ของแบบฟอร์มนี้
-
คอนเทนเนอร์ contentPane = this.getContentPane();
/* สร้างวัตถุพาเนล ระบุตัวจัดการเลย์เอาต์เป็น GridLayout 1 แถวและ 2 คอลัมน์ การจัดการเลย์เอาต์เริ่มต้นของ Jpanel คือ FlowLayout */
JPanel jPanel1 = JPanel ใหม่ (GridLayout ใหม่ (1, 2));
// สร้าง JComboBox โดยใช้อาร์เรย์ String
เชือก [] ผลไม้ = { "แอปเปิ้ล", "กล้วย", "ส้ม", "ลูกแพร์", "มะม่วง" };
JComboBox jComboBox1 = JComboBox ใหม่ (ผลไม้);
jComboBox1.addItem("Other"); //เพิ่มตัวเลือก "Other" อื่นที่ท้ายตัวเลือกกล่องรายการ
//กำหนดเส้นขอบของวัตถุ jList1
jComboBox1.setBorder(BorderFactory.createTitledBorder("ผลไม้ที่คุณชื่นชอบ:"));
//เพิ่มกล่องรายการ jComboBox1 ลงในแผงควบคุม
jPanel1.add(jComboBox1);
//ใช้ ComboBoxModel เพื่อสร้าง JComboBox
ComboBoxModel myModel = ใหม่ MyModel();
JComboBox jComboBox2 = JComboBox ใหม่ (myModel);
//กำหนดเส้นขอบของวัตถุ jList1
jComboBox2.setBorder(BorderFactory.createTitledBorder("ผลไม้ที่คุณชื่นชอบ:"));
//เพิ่มกล่องรายการ jComboBox2 ลงในแผงควบคุม
jPanel1.add(jComboBox2);
//เพิ่มพาเนลไปยังคอนเทนเนอร์หลัก
contentPane.add(jPanel1);
//ตั้งชื่อหัวข้อแบบฟอร์มนี้
this.setTitle("JComboBoxDemo");
//กำหนดขนาดเริ่มต้นที่แสดงโดยแบบฟอร์มนี้
this.setSize(350, 90);
this.setLocation (300, 200);
//ตั้งค่าให้แบบฟอร์มนี้มองเห็นได้ตั้งแต่แรก
this.setVisible (จริง);
-
คลาส MyModel ขยาย DefaultComboBoxModel {
เชือก [] ผลไม้ = { "แอปเปิ้ล", "กล้วย", "ส้ม", "ลูกแพร์", "มะม่วง" };
โมเดลของฉัน() {
สำหรับ (int i = 0; i <fruit.length; i++) {
/* addElement() ใช้เพื่อเพิ่มองค์ประกอบตัวเลือกลงในกล่องรายการ */
this.addElement(ผลไม้[i]);
-
-
-
โมฆะคงสาธารณะ main (String args []) {
การทดสอบ JComboBoxDemo = ใหม่ JComboBoxDemo();
-
-
ภาพหน้าจอ:
3. กล่องรายการ (JList):
ฟังก์ชันของกล่องรายการจะคล้ายกับกล่องรายการแบบหล่นลง นอกจากนี้ยังช่วยให้ผู้ใช้สามารถเลือกระหว่างหลายรายการได้ แต่จะมีความแตกต่างบางประการแก่ผู้ใช้ รวมถึงการเลือกแบบเดี่ยวและแบบต่อเนื่อง และการเลือกหลายรายการ ซึ่งสอดคล้องกับค่าคงที่ 3 รายการใน ListSelectionModel:
(1) int แบบคงที่ SINGLE_SELECTION สามารถเลือกได้เพียงอันเดียวเท่านั้น
(2) int แบบคงที่ SINGLE_INTERVAL_SELECTION กดปุ่ม [Shift] ค้างไว้เพื่อเลือกช่วงเวลาการติดต่อ
(3) static int MULTIPLE_INTERVAL_SELECTION กดปุ่ม [Ctrl] ค้างไว้เพื่อเลือกหลายรายการ
ตัวสร้างมีดังนี้:
(1) JList() สร้างองค์ประกอบ JList
(2) JList (ListModel model) สร้างส่วนประกอบ JList ตามโมเดล
(3) JList(Object[] items) ใช้อ็อบเจ็กต์อาร์เรย์เพื่อสร้างส่วนประกอบ JList
(4) JList (รายการเวกเตอร์) ใช้วัตถุ Vector เพื่อสร้างส่วนประกอบ JList
การเพิ่มกล่องรายการ JList ลงใน JScrollPane สามารถเลื่อนกล่องรายการได้
ตัวอย่างที่ 1 ของการใช้คอมโพเนนต์รายการ (JList) มีดังนี้:
คัดลอกรหัสรหัสดังต่อไปนี้:
JListDemo1 คลาสสาธารณะขยาย JFrame {
เนื้อหาคอนเทนเนอร์บานหน้าต่าง;
เจพาเนล เจพี;
JList jList1,jList2,jList3;
JListDemo1 สาธารณะ () {
contentPane = this.getContentPane();
jp = JPanel ใหม่ (GridLayout ใหม่ (1,3));
//ใช้อาร์เรย์สตริงเพื่อสร้างวัตถุ JList
เชือก[] ผลไม้={"แอปเปิ้ล", "กล้วย", "ส้ม", "ลูกแพร์", "มะม่วง"};
jList1=JList ใหม่ (ผลไม้);
//กำหนดเส้นขอบของวัตถุ jList1
jList1.setBorder(BorderFactory.createTitledBorder("ผลไม้ที่คุณชื่นชอบ: "));
//ตั้งค่าโหมดการเลือกของวัตถุ jList1 ให้เป็นการเลือกเดี่ยว
jList1.setSelectionMode (ListSelectionModel.SINGLE_SELECTION);
jp.เพิ่ม(jList1);
//ใช้ ListModel เพื่อสร้างวัตถุ JList เพื่อตระหนักถึงการเปลี่ยนแปลงของเนื้อหารายการ
ListModel myModel=new MyModel(); //สร้างออบเจ็กต์โมเดลรายการ
jList2=new JList(myModel); //สร้างรายการตามวัตถุโมเดลรายการ
jList2.setBorder(BorderFactory.createTitledBorder("ผลไม้ที่คุณชื่นชอบ: "));
//ตั้งค่าโหมดการเลือกของวัตถุ jList2 ให้กด [Ctrl] ค้างไว้สำหรับการเลือกหลายรายการ
jList2.setSelectionMode (ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
jp.เพิ่ม(jList2);
jList3=JList ใหม่ (ผลไม้);
jList3.setBorder(BorderFactory.createTitledBorder("ผลไม้ที่คุณชื่นชอบ: "));
jList3.setSelectionMode (ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
jList3.setVisibleRowCount(3);
jList3.setFixedCellWidth(120);
jList3.setFixedCellHeight (30);
JScrollPane jScrollPane = JScrollPane ใหม่(jList3);
jp.add(jScrollPane);
contentPane.add(jp);
this.setTitle("JListDemo");
นี้.setSize(340,200);
//หีบห่อ();
this.setLocation (400, 300);
this.setVisible (จริง);
-
//โดยการสืบทอดคลาส DefaultListModel ทำให้สามารถเลือกรายการเนื้อหาไดนามิกได้
คลาส MyModel ขยาย DefaultListModel{
เชือก[] ผลไม้={"แอปเปิ้ล", "กล้วย", "ส้ม", "ลูกแพร์", "มะม่วง"};
โมเดลของฉัน(){
สำหรับ(int i=0;i<fruit.length;i++){
/* เป็นโมฆะ addElement (วัตถุวัตถุ)
* เพิ่มส่วนประกอบที่ระบุที่ส่วนท้ายของตารางดังกล่าว -
this.addElement(ผลไม้[i]);
-
-
-
โมฆะคงที่สาธารณะ main (String [] args) {
การทดสอบ JListDemo1=ใหม่ JListDemo1();
-
-
ผลการวิ่งแสดงในรูปด้านล่าง:
ตัวอย่างกล่องรายการรหัส 2:
คัดลอกรหัสรหัสดังต่อไปนี้:
คลาสสาธารณะ JListDemo2 ขยาย JFrame {
เนื้อหาคอนเทนเนอร์บานหน้าต่าง;
เจพาเนล เจพี;
JList jListFont, jListSize;
//คอนสตรัคเตอร์
JListDemo2 สาธารณะ () {
contentPane = this.getContentPane();
jp = JPanel ใหม่ (GridLayout ใหม่ ());
setJListFont();
setJListFontSize();
contentPane.add(jp);
this.setTitle("JListDemo");
this.setSize(240, 200);
this.setLocation (400, 300);
this.setVisible (จริง);
} // สิ้นสุด JListDemo2
โมฆะสาธารณะ setJListFont () {
GraphicsEnvironment ge = GraphicsEnvironment
.getLocalGraphicsEnvironment();
Final String fontName[] = ge.getAvailableFontFamilyNames(); // รับฟอนต์ในเครื่องของระบบ
jListFont = JList ใหม่ (ชื่อแบบอักษร);
//กำหนดเส้นขอบของวัตถุ jList1
jListFont.setBorder(BorderFactory.createTitledBorder("แบบอักษรของระบบ: "));
//ตั้งค่าโหมดการเลือกของวัตถุ jList1 ให้เป็นการเลือกเดี่ยว
jListFont.setSelectionMode (ListSelectionModel.SINGLE_SELECTION);
jListFont.setVisibleRowCount(3);
jListFont.setFixedCellWidth(120);
jListFont.setFixedCellHeight (20);
JScrollPane jScrollPane1 = JScrollPane ใหม่(jListFont);
jp.add(jScrollPane1);
-
โมฆะสาธารณะ setJListFontSize() {
ขนาดตัวอักษรสตริงสุดท้าย[] = { "8", "9", "10", "12", "14", "15", "16",
"18", "20", "21", "22", "24", "26", "28", "30", "36", "48",
"54", "72", "89" };
//สร้างกล่องรายการขนาดตัวอักษร listSize
jListSize = JList ใหม่ (ขนาดแบบอักษร);
jListSize.setBorder(BorderFactory.createTitledBorder("ขนาดตัวอักษร: "));
//ตั้งค่าโหมดการเลือกของวัตถุ jList2 ให้กด [Ctrl] ค้างไว้สำหรับการเลือกหลายรายการ
jListSize
.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
jListSize.setVisibleRowCount(3);
jListSize.setFixedCellWidth(120);
jListSize.setFixedCellHeight (20);
JScrollPane jScrollPane2 = JScrollPane ใหม่(jListSize);
jp.add(jScrollPane2);
-
โมฆะคงที่สาธารณะ main (String [] args) {
การทดสอบ JListDemo2 = ใหม่ JListDemo2();
-
-
แผนผังการทำงานของโปรแกรม:
4.javax.สวิง
คลาส JColorChooser:
JColorChooser (กล่องโต้ตอบการเลือกสี) มีบานหน้าต่างตัวควบคุมที่ช่วยให้ผู้ใช้สามารถจัดการและเลือกสีได้
ตัวสร้าง JColorChooser:
JColorChooser(): สร้างวัตถุ JColorChooer สีเริ่มต้นคือสีขาว
JColorChooser(สีเริ่มต้นสี): สร้างวัตถุ JColorChooer และตั้งค่าสีเริ่มต้น
JColorChooser(ColorSelectionModel modal): สร้างวัตถุ JColorChooser ด้วย ColorSelectionModel
วิธีทั่วไปในการใช้ JColorChooser คือการใช้วิธีการคงที่ showDialog() ของ JColorChooser กล่าวคือ ในกรณีส่วนใหญ่ เราจะไม่สร้างวัตถุ JColorChooser ใหม่ แต่ใช้วิธีการคงที่โดยตรง (showDialog()) ของ JColorChooser เพื่อส่งออกกล่องโต้ตอบการเลือกสี เมื่อใช้วิธีนี้ เรายังสามารถรับสีที่เลือกโดยผู้ใช้ได้ หากผู้ใช้ไม่เลือก ค่า Null จะถูกส่งกลับ
รหัสกรณีที่ 1 อย่างง่ายสำหรับกล่องโต้ตอบการเลือกสี:
คัดลอกรหัสรหัสดังต่อไปนี้:
JColorChooserDemo คลาสสาธารณะ {
โมฆะคงที่สาธารณะ main (String [] args) {
JFrame frame = ใหม่ JFrame("JColorChooserDemo");
แผง MyPanel = MyPanel ใหม่ ();
frame.getContentPane().add(แผง);
กรอบ.แพ็ค();
frame.setLocation(300, 200);
frame.setVisible(จริง);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
-
-
คลาส MyPanel ขยาย JPanel ใช้งาน ActionListener {
serialVersionUID ยาวสุดท้ายแบบคงที่ส่วนตัว = 1L;
ปุ่ม JButton ส่วนตัว, RGB, สีแดง, สีเขียว, สีฟ้า;
สีส่วนตัว สี = สีใหม่ (255, 51, 150);
MyPanel สาธารณะ () {
ปุ่ม = ใหม่ JButton("รับสี");
rgb = JButton ใหม่ ("RGB: ");
สีแดง = JButton ใหม่ ("สีแดง: ");
สีเขียว = JButton ใหม่ ("สีเขียว: ");
สีน้ำเงิน = JButton ใหม่ ("สีน้ำเงิน: ");
ปุ่ม. addActionListener (นี้);
setPreferredSize(มิติใหม่ (550, 250));
setLayout (FlowLayout ใหม่ (FlowLayout.CENTER, 5, 5));
setBackground(สี);
เพิ่ม (ปุ่ม);
เพิ่ม(rgb);
เพิ่ม(สีแดง);
เพิ่ม (สีเขียว);
เพิ่ม (สีน้ำเงิน);
-
การกระทำที่เป็นโมฆะสาธารณะดำเนินการ (ActionEvent e) {
color = JColorChooser.showDialog (นี่คือ "เลือกสี", สี);
ถ้า (สี != null) {
setBackground(สี);
button.setText("รับอีกครั้ง");
rgb.setText("RGB: " + color.getRGB());
red.setText("สีแดง: " + color.getRed());
green.setText("สีเขียว: " + color.getGreen());
blue.setText("สีน้ำเงิน: " + color.getBlue());
-
-
-
แผนภาพผลการวิ่งมีดังนี้:
อีกวิธีทั่วไปในการใช้ JColorChooser คือการใช้วิธี createDialog() แบบคงที่ หลังจากใช้วิธีคงที่นี้ คุณจะได้รับวัตถุ JDialog เราสามารถใช้วัตถุ JDialog นี้เพื่อทำการตั้งค่าเพิ่มเติมสำหรับกล่องโต้ตอบการเลือกสี หากต้องการใช้วิธีนี้ คุณต้องร่วมมือกับวัตถุ JColorChooser นั่นคือคุณต้องสร้างวัตถุ JColorChooser ใหม่ ตัวอย่างต่อไปนี้จะแนะนำ JColorChooser ที่ง่ายที่สุดและใช้งานได้จริงที่สุด หลังจากเลือกสีแล้ว คุณสามารถเปลี่ยนสีพื้นหลังบน JLabel ได้
รหัสกรณีที่ 2 อย่างง่ายสำหรับกล่องโต้ตอบการเลือกสี:
คัดลอกรหัสรหัสดังต่อไปนี้:
นำเข้า java.awt.*;
นำเข้า java.awt.event.*;
นำเข้า javax.swing.*;
ColorChooserDemo1 คลาสสาธารณะขยาย MouseAdapter {
เจเฟรม ฉ = โมฆะ;
ป้ายกำกับ JLabel = null;
JLabel label1 = โมฆะ;
JLabel label2 = โมฆะ;
สี่เหลี่ยมผืนผ้า rec1 = null;
สี่เหลี่ยมผืนผ้า rec2 = null;
ColorChooserDemo1 สาธารณะ () {
f = new JFrame("ตัวอย่างตัวเลือกสี");
คอนเทนเนอร์ contentPane = f.getContentPane();
contentPane.addMouseListener (นี้);
label = ใหม่ JLabel(" ", JLabel.CENTER);
label.setPreferredSize(มิติข้อมูลใหม่ (300, 20));
แผง JPanel = JPanel ใหม่ ();
แผง setLayout (GridLayout ใหม่ (1, 2));
label1 = ใหม่ JLabel("ป้ายด้านซ้าย", JLabel.CENTER);
label1.setBackground(สี.สีแดง);
label1.setForeground(สี.สีดำ);
label1.setOpaque (จริง);
label1.setBounds(0, 0, 150, 150);
แผง.เพิ่ม(label1);
label2 = ใหม่ JLabel("ป้ายกำกับที่ถูกต้อง", JLabel.CENTER);
label2.setBackground(สี.เขียว);
label2.setForeground(สี.สีดำ);
label2.setOpaque (จริง);
label2.setBounds(150, 0, 150, 150);
แผง.เพิ่ม(label2);
rec1 = label1.getBounds();
rec2 = label2.getBounds();
contentPane.add (แผง BorderLayout.CENTER);
contentPane.add (ป้ายกำกับ BorderLayout.SOUTH);
f.setSize(มิติใหม่(300, 150));
f.setVisible(จริง);
f.addWindowListener (WindowAdapter ใหม่ () {
โมฆะสาธารณะ windowClosing (WindowEvent e) {
System.ออก(0);
-
-
-
// ใช้เมธอด mousePressed() และ mouseClicked() ใน MouseAdapter เมื่อกดเมาส์ คุณจะทราบตำแหน่งปัจจุบันของเคอร์เซอร์ของเมาส์
//สองครั้ง หากเคอร์เซอร์อยู่ในป้ายกำกับ กล่องโต้ตอบการเลือกสีจะปรากฏขึ้น และผู้ใช้สามารถเลือกสีใดก็ได้เพื่อเปลี่ยนสีของป้ายกำกับ
โมฆะสาธารณะ mousePressed (MouseEvent e) {
label.setText("พิกัดเมาส์ปัจจุบัน (X,Y) คือ: (" + e.getX() + "," + e.getY() + ")");
-
โมฆะสาธารณะ mouseClicked (MouseEvent e) {
จุด จุด = e.getPoint();
ถ้า (e.getClickCount() == 2) {
ถ้า (rec1.contains (จุด)) {
-
* ใช้วิธีการคงที่ showDialog() ของ JColorChooser เพื่อส่งออกกล่องโต้ตอบการเลือกสี
* พารามิเตอร์ทั้งสามใน showDialog() คือ: องค์ประกอบหลักของกล่องโต้ตอบ ชื่อกล่องโต้ตอบการเลือกสี
* ด้วยสีเริ่มต้นของกล่องโต้ตอบ หลังจากที่ผู้ใช้เลือกสีแล้ว ให้กดปุ่ม "ตกลง" เพื่อย้อนกลับ
* วัตถุสี หากกดปุ่ม "ยกเลิก" ค่า Null จะถูกส่งกลับ
-
สี สี = JColorChooser.showDialog(f,
"เปลี่ยนสี label1", Color.white);
if (color != null) // หากค่าเป็น null แสดงว่าผู้ใช้กดปุ่ม Cancel
label1.setBackground (สี);
-
ถ้า (rec2.contains (จุด)) {
สี สี = JColorChooser.showDialog(f,
"เปลี่ยนสี label2", Color.yellow);
if (color != null) // หากค่าเป็น null แสดงว่าผู้ใช้กดปุ่ม Cancel
label2.setBackground (สี);
-
-
-
โมฆะคงที่สาธารณะ main (String [] arg) {
ใหม่ ColorChooserDemo1();
-
-