目录一、按钮组件1.1 提交按钮组件1.2 复选框组件二、列表组件2.1 JComboBox类2.2 列表框组件三、文本组件3.1 文本框组件3.2 密码框3.3 文本域组件四、常用时间监听器4.1 动作事件监听器4.2 焦点事件监听器
一、按钮组件
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被选中\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(); }}
二、列表组件
2.1 JComboBox类
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;}}
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<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;}}
三、文本组件
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();}}
到此这篇关于JavaSwing实现程序界面设计的文章就介绍到这了,更多相关JavaSwing程序界面设计内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
有一种缘,放手后成为风景,有一颗心,坚持中方现真诚。