📄 swingdemo.java
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;
public class SwingDemo extends SimpleFrame {
/** Creates a new instance of SwingDemo */
public SwingDemo(int width,int height) {
//设置顶层容器
super(width,height);
setTitle("演示GUI容器、组件、事件及布局");
//JPanel容器采用缺省的FlowLayout布局
topPanel.add(nameLabel);
topPanel.add(nameText);
topPanel.add(new JLabel("学历"));
topPanel.add(comboBox);
//创建互斥按钮组
buttonGroup.add(rb1);
buttonGroup.add(rb2);
buttonGroup.add(rb3);
//设置边框
list.setBorder(BorderFactory.createTitledBorder("文化程度:"));
textArea.setBorder(BorderFactory.createTitledBorder("演示效果:"));
//设置背景色
textArea.setBackground(new Color(200,220,180));
//BOX容器采用缺省的BoxLayout布局
box.add(new JLabel("性别:"));
box.add(rb1);
box.add(rb2);
box.add(rb3);
box.add(checkBox);
//JFrame容器采用缺省的BorderLayout布局
Container c=this.getContentPane();
c.add(topPanel,"North");
c.add(list,"East");
c.add(box,"West");
c.add(button,"South");
c.add(new JScrollPane(textArea),"Center");
//演示JList组件选择列表项事件
list.addListSelectionListener(new ListSelectionListener(){
public void valueChanged(ListSelectionEvent e){
if (e.getValueIsAdjusting()) return;
textArea.append("\n"+(String)(list.getSelectedValue()));
}
});
//演示JCheckBox组件选择事件
checkBox.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
String c=" 未选";
if (checkBox.isSelected() )
c=" 已选";
textArea.append("\n"+(String)(checkBox.getText())+c);
}
});
//演示JComboBox组件选择列表项事件
comboBox.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
textArea.append("\n"+(String)(comboBox.getSelectedItem()));
}
});
//演示JButton组件点击事件
button.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
//演示消息框
JOptionPane.showMessageDialog(null,"演示消息框。",button.getText(),JOptionPane.INFORMATION_MESSAGE);
}
});
//演示JTextField组件文本改变事件
nameText.getDocument().addDocumentListener( new DocumentListener() {
public void insertUpdate(DocumentEvent e) { textArea.append("\n"+nameText.getText());}
public void removeUpdate(DocumentEvent e) {textArea.append("\n"+nameText.getText());}
public void changedUpdate(DocumentEvent e) {}
} );
//演示JRadioButton组件选择事件
rb1.addActionListener(rbListener);
rb2.addActionListener(rbListener);
rb3.addActionListener(rbListener);
}
//演示3个JRadioButton组件注册的一个共用监听器
private ActionListener rbListener = new ActionListener(){
public void actionPerformed(ActionEvent e){
textArea.append("\n"+((JRadioButton)e.getSource()).getText());
}
};
public static void main(String args[]) {
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
} catch (Exception e){
System.err .println("程序异常:"+e.getMessage());
}
SwingDemo frame=new SwingDemo(400,300);
frame.setVisible(true);
}
private JPanel topPanel=new JPanel();
private JPanel listPanel=new JPanel();
private Box box=Box.createVerticalBox();
private JButton button=new JButton("OK");
private JCheckBox checkBox=new JCheckBox("少数民族");
private JRadioButton
rb1=new JRadioButton("男"),
rb2=new JRadioButton("女"),
rb3=new JRadioButton("不详",true);
private ButtonGroup buttonGroup=new ButtonGroup();
private JComboBox comboBox=new JComboBox(degrees);
private JList list=new JList(educationalBackground);
private JTextArea textArea=new JTextArea();
private JLabel nameLabel=new JLabel("姓名:");
private JTextField nameText=new JTextField("张三");
private static String[] degrees={"无","学士","硕士","工程硕士","MBA","博士"};
private static String[] educationalBackground={"小学","初中","高中","大学大专","大学本科","硕士研究生","博士研究生"};
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -