一直在用C\C++,还没开始认真学Java,但这几天课堂上的Java Swing 图形用户界面引起了我的兴趣。正好前段时间在玩Qt的图形化界面,发现两者有很多相似之处,学起来也容易很多。(但实际上JavaSwing的各种事件特别复杂,名字也特别多,怪不得老师说JavaSwing实际开发用的很少)
效果图:
具体用法见代码:
Test.java
public class Test {
public static void main(String args[]) {
ComponentInWindow win = new ComponentInWindow();
win.setBounds(100, 100, 500, 200);
win.setTitle("常见组件");
}
}
ComponentInWindow.java
import java.awt.FlowLayout;
import javax.swing.*;
public class ComponentInWindow extends JFrame{
JTextField text; //文本框
JButton button;
JCheckBox checkBox1, checkBox2, checkBox3; //选择框
JRadioButton radio1, radio2; //单选按钮
ButtonGroup group;
JComboBox<String> comBox; //下拉列表
JTextArea area; //文本区
public ComponentInWindow() {
init();
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
void init() {
setLayout(new FlowLayout()); //流水式布局
add(new JLabel("文本框")); //添加标签
text = new JTextField(10);
add(text);
add(new JLabel("按钮:"));
button = new JButton("确定");
add(button);
add(new JLabel("选择框"));
checkBox1 = new JCheckBox("音乐");
checkBox2 = new JCheckBox("文学");
checkBox3 = new JCheckBox("游泳");
add(checkBox1);
add(checkBox2);
add(checkBox3);
add(new JLabel("单选按钮:"));
group = new ButtonGroup(); //单选按钮所在的组
radio1 = new JRadioButton("理科"); //创建单选按钮,右面的文本是“理科”
radio2 = new JRadioButton("文科");
group.add(radio1);
group.add(radio2);
add(radio1);
add(radio2);
add(new JLabel("下拉列表:"));
comBox = new JComboBox<String>(); //创建下拉列表
comBox.addItem("一季度");
comBox.addItem("二季度");
comBox.addItem("三季度");
comBox.addItem("四季度");
add(comBox);
add(new JLabel("文本区:"));
area = new JTextArea(6, 12);
add(new JScrollPane(area)); //添加带有滚动条件的文本区
}
}