千家信息网

Java Swing程序界面设计的方法

发表于:2025-01-19 作者:千家信息网编辑
千家信息网最后更新 2025年01月19日,今天小编给大家分享一下Java Swing程序界面设计的方法的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面
千家信息网最后更新 2025年01月19日Java Swing程序界面设计的方法

今天小编给大家分享一下Java Swing程序界面设计的方法的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

一、按钮组件

1.1 提交按钮组件

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();        }}

1.2 复选框组件

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被选中");            }        });        panel2.add(jc2);        jc2.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                if (jc2.isSelected())                    jt.append("复选框2被选中");            }        });        panel2.add(jc3);        jc3.addActionListener(new ActionListener() {            public void actionPerformed(ActionEvent e) {                if (jc3.isSelected())                    jt.append("复选框3被选中");            }        });        setSize(200, 160);        setVisible(true);        setTitle("复选框的使用");        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);    }    public static void main(String[] args) {        new CheckBoxTest();    }}

二、列表组件

2.1 JComboBox类

import java.awt.*;import javax.swing.*;public class JComboBoxModelTest extends JFrame {        private static final long serialVersionUID = 1L;        JComboBox 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 implements ComboBoxModel {        /**         *          */        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;        }}

2.2 列表框组件

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 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 {        /**         *          */        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++];                else                        return null;        }                public int getSize() {                return contents.length;        }}

三、文本组件

3.1 文本框组件

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();        }}

3.2 密码框

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();        }}

3.3 文本域组件

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();        }}

四、常用时间监听器

4.1 动作事件监听器

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();        }}

4.2 焦点事件监听器

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();        }}

以上就是"Java Swing程序界面设计的方法"这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注行业资讯频道。

0