Java Swing程序設計實戰
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)); // 設置網格布局管理器Container c = getContentPane(); // 創建容器for (int i = 0; i < 5; i++) {// 創建按鈕,同時設置按鈕文字與圖標JButton J = new JButton('button' + i, icon);c.add(J); // 在容器中添加按鈕if (i % 2 == 0) {J.setEnabled(false); // 設置其中一些按鈕不可用}}JButton jb = new JButton(); // 實例化一個沒有文字與圖片的按鈕jb.setMaximumSize(new Dimension(90, 30)); // 設置按鈕與圖片相同大小jb.setIcon(icon); // 為按鈕設置圖標jb.setHideActionText(true);jb.setToolTipText('圖片按鈕'); // 設置按鈕提示為文字jb.setBorderPainted(false); // 設置按鈕邊界不顯示jb.addActionListener(new ActionListener() { // 為按鈕添加監聽事件public void actionPerformed(ActionEvent e) {// 彈出確認對話框JOptionPane.showMessageDialog(null, '彈出對話框');}});c.add(jb); // 將按鈕添加到容器中setTitle('創建帶文字與圖片的按鈕');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('復選框1被選中n'); }});panel2.add(jc2);jc2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {if (jc2.isSelected()) jt.append('復選框2被選中n'); }});panel2.add(jc3);jc3.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) {if (jc3.isSelected()) jt.append('復選框3被選中n'); }});setSize(200, 160);setVisible(true);setTitle('復選框的使用');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('請選擇證件');public JComboBoxModelTest() {setSize(new Dimension(160, 180));setVisible(true);setTitle('在窗口中設置下拉列表框');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 = { '身份證', '軍人證', '學生證', '工作證' };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('在這個窗體中使用了列表框');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 自動生成方法存根jt.setText('觸發事件');}});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 自動生成方法存根jp.setText('觸發事件');}});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('定義自動換行的文本域');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('我是按鈕,點擊我');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('請單擊其他文本框', 10);JTextField jt2 = new JTextField('請單擊我', 10);cp.add(jt);cp.add(jt2);jt.addFocusListener(new FocusListener() {// 組件失去焦點時調用的方法public void focusLost(FocusEvent arg0) {JOptionPane.showMessageDialog(null, '文本框失去焦點');}// 組件獲取鍵盤焦點時調用的方法public void focusGained(FocusEvent arg0) {}});setVisible(true);}public static void main(String[] args) {new FocusEventTest();}}
到此這篇關于JavaSwing實現程序界面設計的文章就介紹到這了,更多相關JavaSwing程序界面設計內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!
相關文章:
1. springcloud alibaba nacos linux配置的詳細教程2. Vue為什么要謹慎使用$attrs與$listeners3. SpringBoot 使用 @Value 注解讀取配置文件給靜態變量賦值4. Java 生成帶Logo和文字的二維碼5. SpringBoot整合MybatisPlus的教程詳解6. 解決在Vue中使用axios POST請求變成OPTIONS的問題7. Spring Boot2發布調用REST服務實現方法8. python 實現圖片修復(可用于去水印)9. Android自定義控件實現方向盤效果10. python中的socket實現ftp客戶端和服務器收發文件及md5加密文件
