Java Swing程序设计实战

网友投稿 384 2022-10-24


Java Swing程序设计实战

一、按钮组件

1.1 提交按钮组件

package swing;

import java.awt.*;

import java.ahttp://wt.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 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();

}

}


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:通过关键字获取漏洞平台最新漏洞信息
下一篇:IRF简书以及使用H3C模拟器HCL完成基础的IRF实施
相关文章

 发表评论

评论列表