4.JPanel面板和JScroll
JPanel
public class JPanelDemo extends JFrame {
public JPanelDemo() {
Container container = this.getContentPane();
container.setLayout(new GridLayout(2,1,10,10)); //后两个参数的意思是,间距
JPanel panel1=new JPanel(new GridLayout(1,3));
JPanel panel2=new JPanel(new GridLayout(1,2));
JPanel panel3=new JPanel(new GridLayout(1,4));
panel1.add(new JButton("1"));
panel1.add(new JButton("1"));
panel1.add(new JButton("1"));
panel2.add(new JButton("2"));
panel2.add(new JButton("2"));
panel3.add(new JButton("3"));
panel3.add(new JButton("3"));
panel3.add(new JButton("3"));
panel3.add(new JButton("3"));
container.add(panel1);
container.add(panel2);
container.add(panel3);
this.setVisible(true);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.setSize(500,500);
}
public static void main(String[] args) {
new JPanelDemo();
}
}
产生效果:
JScroll滚动条
public class JScrollDemo extends JFrame {
public JScrollDemo() {
Container container = this.getContentPane();
//文本域
JTextArea textArea = new JTextArea();
textArea.setText("欢迎学习Java");
// container.add(textArea); 用普通面板不行
//改用Scroll面板
JScrollPane scrollPane = new JScrollPane(textArea);
container.add(scrollPane);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setVisible(true);
setBounds(100,100,300,350);
}
public static void main(String[] args) {
new JScrollDemo();
}
}
5.按钮
图片按钮
public class JButtonDemo01 extends JFrame {
public JButtonDemo01() {
Container container = this.getContentPane();
//将图片变成图标
URL resource = JButtonDemo01.class.getResource("aaa.jpg");
ImageIcon icon = new ImageIcon(resource);
//把这个图标放在按钮上
JButton button = new JButton();
button.setIcon(icon);
button.setToolTipText("图片按钮"); //提示文本
//add
container.add(button);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setVisible(true);
setSize(100,200);
}
public static void main(String[] args) {
new JButtonDemo01();
}
}
单选框
public class JButtonDemo02 extends JFrame {
public JButtonDemo02() {
Container container = this.getContentPane();
//单选框
JRadioButton radioButton1 = new JRadioButton("JRadioButton1");
JRadioButton radioButton2 = new JRadioButton("JRadioButton2");
JRadioButton radioButton3 = new JRadioButton("JRadioButton3");
//由于单选框只能选择一个,需要分组,一个组里只能选一个
ButtonGroup group = new ButtonGroup();
group.add(radioButton1);
group.add(radioButton2);
group.add(radioButton3);
//add
container.add(radioButton1,BorderLayout.CENTER);
container.add(radioButton2,BorderLayout.NORTH);
container.add(radioButton3,BorderLayout.SOUTH);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setVisible(true);
setSize(100,200);
}
public static void main(String[] args) {
new JButtonDemo02();
}
}
多选框
public class JButtonDemo03 extends JFrame{
public JButtonDemo03() {
Container container = this.getContentPane();
//单选框
JCheckBox box01 = new JCheckBox("checkBox01");
JCheckBox box02 = new JCheckBox("checkBox02");
//add
container.add(box01,BorderLayout.CENTER);
container.add(box02,BorderLayout.NORTH);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setVisible(true);
setSize(100,200);
}
public static void main(String[] args) {
new JButtonDemo03();
}
}
6.列表和下拉框
分类
- 下拉框
public class TestComboboxDemo extends JFrame {
public TestComboboxDemo(){
Container container = this.getContentPane();
JComboBox status = new JComboBox();
status.addItem(null);
status.addItem("正在热映");
status.addItem("已下架");
status.addItem("即将上映");
container.add(status);
setSize(500,350);
setVisible(true);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new TestComboboxDemo();
}
}
- 列表
public class TestComboboxDemo02 extends JFrame{
public TestComboboxDemo02(){
Container container = this.getContentPane();
//生成列表的内容
//String[] contents={"1","2","3"}; 静态
Vector contents = new Vector(); //动态
//列表中需要放入内容
JList list = new JList(contents);
contents.add("zhangsan");
contents.add("lisi");
contents.add("wangwu");
container.add(list);
setSize(500,350);
setVisible(true);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new TestComboboxDemo02();
}
}
应用
- 下拉框:选择地区,或者一些单个选项(选项2个时用单选框,大于2个用下拉框,节省资源)
- 列表:展示一些信息,一般是动态扩容
7.文本框
- 文本框TextField
public class TextTextDemo01 extends JFrame{
public TextTextDemo01(){
Container container = this.getContentPane();
//文本框
JTextField textField = new JTextField("Hello");
JTextField textField2= new JTextField("World",20);
container.add(textField,BorderLayout.SOUTH);
container.add(textField2,BorderLayout.NORTH); //布局时如果元件数量太多,用绝对布局
setSize(500,350);
setVisible(true);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new TextTextDemo01();
}
}
- 密码框PasswordField
//密码框
JPasswordField passwordField = new JPasswordField(); //******
passwordField.setEchoChar('*');
container.add(passwordField);
- 文本域 TextArea
代码见Scroll部分
//文本域
JTextArea textArea = new JTextArea();
textArea.setText("欢迎学习Java");