Java Swing程序設(shè)計(jì)實(shí)戰(zhàn)
package swing;import java.awt.*;import java.awt.event.*;import java.net.*;import javax.swing.*;public class JButtonTest extends JFrame {/** * */private static final long serialVersionUID = 1L;public JButtonTest() {URL url = JButtonTest.class.getResource('imageButton.jpg');Icon icon = new ImageIcon(url);setLayout(new GridLayout(3, 2, 5, 5)); // 設(shè)置網(wǎng)格布局管理器Container c = getContentPane(); // 創(chuàng)建容器for (int i = 0; i < 5; i++) {// 創(chuàng)建按鈕,同時(shí)設(shè)置按鈕文字與圖標(biāo)JButton J = new JButton('button' + i, icon);c.add(J); // 在容器中添加按鈕if (i % 2 == 0) {J.setEnabled(false); // 設(shè)置其中一些按鈕不可用}}JButton jb = new JButton(); // 實(shí)例化一個(gè)沒(méi)有文字與圖片的按鈕jb.setMaximumSize(new Dimension(90, 30)); // 設(shè)置按鈕與圖片相同大小jb.setIcon(icon); // 為按鈕設(shè)置圖標(biāo)jb.setHideActionText(true);jb.setToolTipText('圖片按鈕'); // 設(shè)置按鈕提示為文字jb.setBorderPainted(false); // 設(shè)置按鈕邊界不顯示jb.addActionListener(new ActionListener() { // 為按鈕添加監(jiān)聽事件public void actionPerformed(ActionEvent e) {// 彈出確認(rèn)對(duì)話框JOptionPane.showMessageDialog(null, '彈出對(duì)話框');}});c.add(jb); // 將按鈕添加到容器中setTitle('創(chuàng)建帶文字與圖片的按鈕');setSize(350, 150);setVisible(true);setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);}public static void main(String args[]) {new JButtonTest();}}
import java.awt.*;import java.awt.event.*;import javax.swing.*;public class CheckBoxTest extends JFrame { /** * */ private static final long serialVersionUID = 1L; private JPanel panel1 = new JPanel(); private JPanel panel2 = new JPanel(); private JTextArea jt = new JTextArea(3, 10); private JCheckBox jc1 = new JCheckBox('1'); private JCheckBox jc2 = new JCheckBox('2'); private JCheckBox jc3 = new JCheckBox('3'); public CheckBoxTest() {Container c = getContentPane();c.setLayout(new BorderLayout());c.add(panel1, BorderLayout.NORTH);final JScrollPane scrollPane = new JScrollPane(jt);panel1.add(scrollPane);c.add(panel2, BorderLayout.SOUTH);panel2.add(jc1);jc1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {if (jc1.isSelected()) jt.append('復(fù)選框1被選中n'); }});panel2.add(jc2);jc2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {if (jc2.isSelected()) jt.append('復(fù)選框2被選中n'); }});panel2.add(jc3);jc3.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {if (jc3.isSelected()) jt.append('復(fù)選框3被選中n'); }});setSize(200, 160);setVisible(true);setTitle('復(fù)選框的使用');setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); } public static void main(String[] args) {new CheckBoxTest(); }}
import java.awt.*;import javax.swing.*;public class JComboBoxModelTest extends JFrame {private static final long serialVersionUID = 1L;JComboBox<String> jc = new JComboBox<>(new MyComboBox());JLabel jl = new JLabel('請(qǐng)選擇證件');public JComboBoxModelTest() {setSize(new Dimension(160, 180));setVisible(true);setTitle('在窗口中設(shè)置下拉列表框');setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);Container cp = getContentPane();cp.setLayout(new FlowLayout());cp.add(jl);cp.add(jc);}public static void main(String[] args) {new JComboBoxModelTest();}}class MyComboBox extends AbstractListModel<String> implements ComboBoxModel<String> {/** * */private static final long serialVersionUID = 1L;String selecteditem = null;String[] test = { '身份證', '軍人證', '學(xué)生證', '工作證' };public String getElementAt(int index) {return test[index];}public int getSize() {return test.length;}public void setSelectedItem(Object item) {selecteditem = (String) item;}public Object getSelectedItem() {return selecteditem;}public int getIndex() {for (int i = 0; i < test.length; i++) {if (test[i].equals(getSelectedItem()))return i;}return 0;}}
import java.awt.*;import javax.swing.*;public class JListTest extends JFrame {/** * */private static final long serialVersionUID = 1L;public JListTest() {Container cp = getContentPane();cp.setLayout(null);JList<String> jl = new JList<>(new MyListModel());JScrollPane js = new JScrollPane(jl);js.setBounds(10, 10, 100, 100);cp.add(js);setTitle('在這個(gè)窗體中使用了列表框');setSize(200, 150);setVisible(true);setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);}public static void main(String args[]) {new JListTest();}}class MyListModel extends AbstractListModel<String> {/** * */private static final long serialVersionUID = 1L;private String[] contents = { '列表1', '列表2', '列表3', '列表4', '列表5', '列表6' };public String getElementAt(int x) {if (x < contents.length)return contents[x++];elsereturn null;}public int getSize() {return contents.length;}}
import java.awt.*;import java.awt.event.*;import javax.swing.*;public class JTextFieldTest extends JFrame {/** * */private static final long serialVersionUID = 1L;public JTextFieldTest() {setSize(250, 100);setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);Container cp = getContentPane();getContentPane().setLayout(new FlowLayout());final JTextField jt = new JTextField('aaa', 20);final JButton jb = new JButton('清除');cp.add(jt);cp.add(jb);jt.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {// TODO 自動(dòng)生成方法存根jt.setText('觸發(fā)事件');}});jb.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {jt.setText('');jt.requestFocus();}});setVisible(true);}public static void main(String[] args) {new JTextFieldTest();}}
import java.awt.*;import java.awt.event.*;import javax.swing.*;public class JTextFieldTest extends JFrame {/** * */private static final long serialVersionUID = 1L;public JTextFieldTest() {setSize(250, 100);setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);Container cp = getContentPane();getContentPane().setLayout(new FlowLayout());//final JTextField jt=new JTextField('aaa',20);JPasswordField jp = new JPasswordField('', 20);jp.setEchoChar(’*’);final JButton jb = new JButton('清除');cp.add(jp);cp.add(jb);jp.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {// TODO 自動(dòng)生成方法存根jp.setText('觸發(fā)事件');}});jb.addActionListener(new ActionListener() {public void actionPerformed(ActionEvent arg0) {jp.setText('');jp.requestFocus();}});setVisible(true);}public static void main(String[] args) {new JTextFieldTest();}}
import java.awt.*;import javax.swing.*;public class JTextAreaTest extends JFrame {public JTextAreaTest() {setSize(200, 100);setTitle('定義自動(dòng)換行的文本域');setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);Container cp = getContentPane();JTextArea jt = new JTextArea('文本域', 6, 6);jt.setLineWrap(true);cp.add(jt);setVisible(true);}public static void main(String[] args) {new JTextAreaTest();}}
import java.awt.*;import java.awt.event.*;import javax.swing.*;public class SimpleEvent extends JFrame {/** * */private static final long serialVersionUID = 1L;private JButton jb = new JButton('我是按鈕,點(diǎn)擊我');public SimpleEvent() {setLayout(null);setSize(200, 100);setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);Container cp = getContentPane();cp.add(jb);jb.setBounds(10, 10, 100, 30);jb.addActionListener(new jbAction());setVisible(true);}class jbAction implements ActionListener {public void actionPerformed(ActionEvent arg0) {jb.setText('我被單擊了');}}public static void main(String[] args) {new SimpleEvent();}}
import java.awt.*;import java.awt.event.*;import javax.swing.*;public class FocusEventTest extends JFrame {/** * */private static final long serialVersionUID = 1L;public FocusEventTest() {setSize(250, 100);setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);Container cp = getContentPane();getContentPane().setLayout(new FlowLayout());final JLabel label = new JLabel();getContentPane().add(label);JTextField jt = new JTextField('請(qǐng)單擊其他文本框', 10);JTextField jt2 = new JTextField('請(qǐng)單擊我', 10);cp.add(jt);cp.add(jt2);jt.addFocusListener(new FocusListener() {// 組件失去焦點(diǎn)時(shí)調(diào)用的方法public void focusLost(FocusEvent arg0) {JOptionPane.showMessageDialog(null, '文本框失去焦點(diǎn)');}// 組件獲取鍵盤焦點(diǎn)時(shí)調(diào)用的方法public void focusGained(FocusEvent arg0) {}});setVisible(true);}public static void main(String[] args) {new FocusEventTest();}}
到此這篇關(guān)于JavaSwing實(shí)現(xiàn)程序界面設(shè)計(jì)的文章就介紹到這了,更多相關(guān)JavaSwing程序界面設(shè)計(jì)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 簡(jiǎn)述JAVA同步、異步、阻塞和非阻塞之間的區(qū)別2. Python TestSuite生成測(cè)試報(bào)告過(guò)程解析3. 詳解JAVA 強(qiáng)引用4. IntelliJ IDEA設(shè)置默認(rèn)瀏覽器的方法5. 在JSP中使用formatNumber控制要顯示的小數(shù)位數(shù)方法6. 使用Python3 poplib模塊刪除服務(wù)器多天前的郵件實(shí)現(xiàn)代碼7. IntelliJ IDEA設(shè)置背景圖片的方法步驟8. 解決AJAX返回狀態(tài)200沒(méi)有調(diào)用success的問(wèn)題9. 深入了解JAVA 軟引用10. SpringBoot集成mqtt的多模塊項(xiàng)目配置詳解
