一。使用JFrame(创建窗口)JDialog(创建新窗口)
//1.创建一个窗口对象JFrame frame = new JFrame("一个文件");//2.创建一个容器Container container = frame.getContentPane();//3.为容器添加颜色container.setBackground(Color.gray);//4.为窗口设置大小窗口frame.setBounds(100,100,500,600);//5.设置它的可视化窗口frame.setVisible(true);//6。设置它的关闭方式frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);//7.在窗口内部重新上设置一个新的内部窗口JDialog jd = new JDialog(frame,"一个新的文件");//8.为新窗口设置窗口大小jd.setBounds(150,150,100,100);//9.设置新窗口的背景颜色jd.setBackground(Color.blue);//10。是否可视化jd.setVisible(true);//11.设置关闭方式jd.setDefaultCloseOperation(jd.DISPOSE_ON_CLOSE);
二。使用JPanel(一个中间层容器)和JButton(创建一个按钮)
//1.创建一个按钮配置 JButton button1 = new JButton("按钮1"); JButton button2 = new JButton("按钮2"); //2.创建一个中间容器 JPanel panel = new JPanel(new FlowLayout()); panel.add(button1); panel.add(button2); frame.add(panel);
JPanel和JScrollPane都是为容器添加组件,区别在于JPanel是添加多个组件,而JScrollPane是添加一个组件
三。使用JLable(标签)可以添加文字和图片
//1.创建一个容器JPanel可以添加多个容器,以及设置颜色 JPanel jPanel = new JPanel(); jPanel.setBackground(Color.gray); //2.添加一个图片组件,采用图片的绝对路径 ImageIcon icon = new ImageIcon("E:\\python程序空文件\\untitled\\src\\img.png"); //3.创建一个标签,将图片和文字放入标签中 JLabel label = new JLabel(icon); //4.创建一个文字内容 JLabel label1 = new JLabel("这是一个文件"); //5.设置文字的内容,采用居中方式 label1.setHorizontalAlignment(JLabel.CENTER); //6.设置文字的字体样式,字体,字样,大小 label1.setFont(new Font("宋体",Font.BOLD,30)); //7.标签进行添加图片和字样 jPanel.add(label); jPanel.add(label1); //8.添加于外部界面 frame.add(jPanel);
四。按钮标签
1.按钮的创建
JButton jButton = new JButton("点击我",icon);//可以添加照片和文字 JButton jButton = new JButton("按钮1");//只添加文 jButton.setEnabled(true);//当为true为可按钮可点击,当为false为按钮不可点击 jButton.setBorderPainted(true);//当为true则显示按钮边框,false则不显示边框
2.单选按钮组件:
JRadioButton jRadioButton1 = new JRadioButton("男");//创建一个单选按钮 JRadioButton jRadioButton2 = new JRadioButton("女"); ButtonGroup buttonGroup = new ButtonGroup();//创建一个按钮组 buttonGroup.add(jRadioButton1);按钮组添加一个按钮 buttonGroup.add(jRadioButton2); frame.add(jRadioButton1);进行页面的显示 frame.add(jRadioButton2);
按钮添加于按钮组中的原因:用户只能选择按钮中的其中一个,一般是性别
3.多选按钮的使用:
JCheckBox box = new JCheckBox("内容");
panel.add(new JCheckBox("面条",true));//panel是存放组件的容器
panel.add(new JCheckBox("米饭",false));//true表示开始选中,false表示不选中
panel.add(new JCheckBox("馒头",false));
五。下拉列表的使用:
JComboBox box = new JComboBox();//创建下滑列表的窗口 box.addItem("--请选择学历--");//内容的添加 box.addItem("初中"); box.addItem("高中"); box.addItem("大专"); box.addItem("本科"); panel.add(box);容器添加此下拉窗口
六:菜单栏组件:
1.创建菜单条:JMenuBar
2.创建菜单:JMenu
3.创建菜单项:JMenuITem
菜单项依附于菜单,菜单依附于菜单条
单菜单的创建:
JMenuBar bar = new JMenuBar();//创建菜单条
JMenu menu = new JMenu("菜单1");//创建菜单
JMenuItem jMenuItem1 = new JMenuItem("菜单项1");创建菜单项,即最后的内容
JMenuItem jMenuItem2 = new JMenuItem("菜单项2");
JMenuItem jMenuItem3 = new JMenuItem("菜单项3");
menu.add(jMenuItem1);//菜单项目依赖菜单
menu.add(jMenuItem2);
menu.add(jMenuItem3);
bar.add(menu);//菜单依赖于菜单条
panel.add(bar);
多级菜单的创建:(即创建多个菜单)
JMenuBar bar = new JMenuBar();
JMenu menu = new JMenu("菜单1");
JMenu menu2 = new JMenu("菜单2");
JMenu menu3 = new JMenu("菜单3");
JMenuItem jMenuItem1 = new JMenuItem("菜单项1");
JMenuItem jMenuItem2 = new JMenuItem("菜单项2");
JMenuItem jMenuItem3 = new JMenuItem("菜单项3");
menu.add(jMenuItem1);
menu2.add(jMenuItem2);
menu3.add(jMenuItem3);
bar.add(menu);
bar.add(menu2);
bar.add(menu3);
panel.add(bar);
七。组件位置的设定GridLAyout
1.FlowLayout流式对其方式:
(1)FlowLayout.lert:左对齐
(2)FlowLayout.right:右对齐
(3)FlowLayout.leading:与容器的对齐端方式一样
(4)FlowLayout.trailing:于容器的结束端对齐方式一样
(5)FlowLayout.center:中间对齐
frame.setLayout(new FlowLayout(FlowLayout.CENTER,40,40));
注释:frame里面传递的是流对齐方式,其中对齐方式为中间对齐,每个组件水平和垂直距离都是40
2.边界布局管理器BorderLayout:
(1)EAST:布局于东边
(2)WEST:布局于西边
(3)SOUTH:布局于南边
(4)CENTER:布局于中间
(5)NORTH:布局于中间
panel.setLayout(new BorderLayout()); JButton button1 = new JButton("北"); JButton button2 = new JButton("南"); JButton button3 = new JButton("东"); JButton button4 = new JButton("西"); JButton button5 = new JButton("中"); panel.add(button1,BorderLayout.NORTH); panel.add(button2,BorderLayout.SOUTH); panel.add(button3,BorderLayout.WEST); panel.add(button4,BorderLayout.EAST); panel.add(button5,BorderLayout.CENTER);
3.网络布局管理器GridLayout:
JPanel panel = new JPanel();//内网页
GridLayout gridLayout = new GridLayout(3, 3);//设置行为3,列为3的格子
panel.setLayout(gridLayout);//设置布局方式为网络布局管理器
for (int i = 1; i <= 9; i++) {JButton button = new JButton("Button " + i);//添加按钮panel.add(button);
}
frame.add(panel);
注释:要设置盒子的行和列
4.盒子布局管理器BoxLayout:
JPanel panel = new JPanel();
panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS));
for (int i = 1; i <= 9; i++) {JButton button = new JButton("Button " + i);panel.add(button);
}frame.add(panel);
注释:BoxLayout的第一个参数是正对的对象,Y_AXIS:向下垂直方向,X_AXIS:水平方向