java学习第二十七天
1.Dialog
JDialog 窗体的功能是从一个窗体中弹出另一个窗体,就像是在使用 IE 浏览器时弹出的确定对话框,一样。JDialog 实质上就是另一种类型的窗体,它与 JFrame 窗体类似,在使用时也需要调用 getContentPane() 方法将窗体转换为容器,然后在容器中设置窗体的属性。
package demo01;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
public class Dialog extends JDialog{
public Dialog(JFrame jframe) {
super(jframe,false);
this.setBounds(100,100,500,500);
Container container1=this.getContentPane();
container1.setLayout(null);
JButton button1=new JButton("我要五班");
button1.setBounds(30,30,200,50);
container1.add(button1);
}
public static void main(String[] args) {
JFrame j=new JFrame();
j.setVisible(true);
j.setBounds(100,100,700,500);
j.setDefaultCloseOperation(EXIT_ON_CLOSE);
Container container=j.getContentPane();
container.setLayout(null);
JButton button=new JButton("我要登录");
button.setBounds(30,30,200,50);
button.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
Dialog s=new Dialog(j);
s.setVisible(true);
System.out.println("我被点击了");
}
});
container.add(button);
}
}
2.JPane
Panel 是 Java图形用户界面(GUI)工具包swing中的面板容器类,包含在javax.swing 包中,可以进行嵌套,功能是对窗体中具有相同逻辑功能的组件进行组
package demo02;
import java.awt.Container;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
//面板作为容器不能单独存在,必须放到其他容器里面JFrame,jDialog
public class JPane extends JFrame{
public JPane() {
Container container=this.getContentPane();
container.setLayout(new GridLayout(2,1,10,10));
JPanel panel=new JPanel(new GridLayout(1,3));
panel.add(new JButton("1"));
panel.add(new JButton("2"));
panel.add(new JButton("3"));
container.add(panel);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
this.setBounds(100,100,500,500);
}
public static void main(String[] args) {
new JPane();
}
}
3.JSrcoll文本域面板
package demo02;
import java.awt.Container;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
//面板作为容器不能单独存在,必须放到其他容器里面JFrame,jDialog
@SuppressWarnings("serial")
public class JScroll extends JFrame{
public JScroll() {
Container container1=this.getContentPane();
JTextArea textarea=new JTextArea(20,50);
textarea.setText("大数据五班");
JScrollPane scrollpane=new JScrollPane(textarea);
//container1.setLayout(new GridLayout(2,1,10,10));
//JPanel scrllpane=new JPanel();
//scrllpane.add(textarea);
container1.add(scrollpane);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
this.setBounds(100,100,500,500);
}
public static void main(String[] args) {
new JScroll();
}
}
4.BorderLayout
BorderLayout是常用的布局,放大和缩小窗口时,中间的组件区域会跟着放大和缩小
package demo03;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.WindowConstants;
public class TestBorderLayout {
public static void main(String[] args) {
JFrame j=new JFrame();
j.setVisible(true);
j.setBounds(100,100,700,500);
j.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JButton east=new JButton("east");
JButton west=new JButton("west");
JButton south=new JButton("south");
JButton north=new JButton("north");
JButton center=new JButton("居中");
j.add(east,BorderLayout.EAST);
j.add(west,BorderLayout.WEST);
j.add(south,BorderLayout.SOUTH);
j.add(north,BorderLayout.NORTH);
j.add(center,BorderLayout.CENTER);
}
}
5.TestFlowLayout
Flowlayout属于自定义流式布局,意思就是说从左上角开始添加原件,依次往后排,第一行挤满了就换一行接着排。
package demo03;
import java.awt.FlowLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.WindowConstants;
public class TestFlowLayout {
public static void main(String[] args) {
JFrame j=new JFrame();
j.setVisible(true);
j.setBounds(100,100,700,500);
j.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//j.setLayout(new FlowLayout());不传参数,默认居中
//j.setLayout(new FlowLayout(FlowLayout.RIGHT));
j.setLayout(new FlowLayout(FlowLayout.LEFT));
JButton button1=new JButton("button1");
JButton button2=new JButton("button2");
JButton button3=new JButton("button3");
JButton button4=new JButton("button4");
JButton button5=new JButton("button5");
JButton button6=new JButton("button6");
j.add(button1);
j.add(button2);
j.add(button3);
j.add(button4);
j.add(button5);
j.add(button6);
}
}
6.Grid
网格布局管理器,将容器分成大小相等的网格
package demo03;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.WindowConstants;
public class TestGrid2 {
public static void main(String[] args) {
JFrame j=new JFrame();
j.setVisible(true);
j.setBounds(100,100,700,500);
j.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
//j.setLayout(new FlowLayout());不传参数,默认居中
//j.setLayout(new FlowLayout(FlowLayout.RIGHT));
j.setLayout(new GridLayout(3,2));
JButton button1=new JButton("button1");
button1.setSize(50,50);
JButton button2=new JButton("button2");
button2.setSize(50,50);
JButton button3=new JButton("button3");
JButton button4=new JButton("button4");
JButton button5=new JButton("button5");
//JButton button6=new JButton("button6");
j.add(button1);
j.add(button2);
j.add(button3);
j.add(button4);
j.add(button5);
//j.add(button6);
//j.pack();
}
}
7.CheckBox复选框
package demo04;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
//面板作为容器不能单独存在,必须放到其他容器里面JFrame,jDialog
public class CheckBox extends JFrame{
public CheckBox() {
Container container1=this.getContentPane();
JCheckBox checkbox1=new JCheckBox("自动登录");
JCheckBox checkbox2=new JCheckBox("记住密码");
JCheckBox checkbox3=new JCheckBox("checkbox3");
container1.add(checkbox1,BorderLayout.CENTER);
container1.add(checkbox2,BorderLayout.EAST);
container1.add(checkbox3,BorderLayout.WEST);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
this.setBounds(100,100,500,500);
}
public static void main(String[] args) {
new CheckBox();
}
}
8.RadioButton单选按钮
package demo04;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.GridLayout;
import javax.swing.ButtonGroup;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
//面板作为容器不能单独存在,必须放到其他容器里面JFrame,jDialog
public class RadioButton extends JFrame{
public RadioButton() {
Container container1=this.getContentPane();
JRadioButton readiobutton1=new JRadioButton("JRadioButton1");
JRadioButton readiobutton2=new JRadioButton("JRadioButton2");
JRadioButton readiobutton3=new JRadioButton("JRadioButton3");
JRadioButton readiobutton4=new JRadioButton("JRadioButton4");
ButtonGroup group=new ButtonGroup();
group.add(readiobutton1);
group.add(readiobutton2);
group.add(readiobutton3);
group.add(readiobutton4);
container1.add(readiobutton1,BorderLayout.CENTER);
container1.add(readiobutton2,BorderLayout.NORTH);
container1.add(readiobutton3,BorderLayout.SOUTH);
container1.add(readiobutton4,BorderLayout.EAST);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
this.setBounds(100,100,500,500);
}
public static void main(String[] args) {
new RadioButton();
}
}
9.Combox
combox组合框其实就是把一个编辑框和一个列表框组合到了一起,分为三种: 简易(Simple)组合框、下拉式(Dropdown)组合框和下拉列表式(Drop List)组合框
package demo05;
import java.awt.Container;
import java.awt.GridLayout;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
//面板作为容器不能单独存在,必须放到其他容器里面JFrame,jDialog
public class TestCombox2 extends JFrame{
public TestCombox2() {
Container container=this.getContentPane();
//String[] contents= {"1","五班","java"};
Vector<Object> contents=new Vector();
JList jlist=new JList(contents);
contents.add("五班");
contents.add("打游戏");
contents.add("睡觉");
container.add(jlist);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
this.setBounds(100,100,500,500);
}
public static void main(String[] args) {
new TestCombox2();
}
}
package demo05;
import java.awt.Container;
import java.awt.GridLayout;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JPanel;
//面板作为容器不能单独存在,必须放到其他容器里面JFrame,jDialog
public class TestCombox extends JFrame{
public TestCombox() {
Container container=this.getContentPane();
JComboBox status=new JComboBox();
status.addItem("正在睡觉");
status.addItem("准备睡觉");
status.addItem("看电视");
container.add(status);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setVisible(true);
this.setBounds(100,100,500,500);
}
public static void main(String[] args) {
new TestCombox();
}
}