java swing(GUI图形化界面)基础教程2-添加组件
书接上回,这是我们已经写好的代码:
public static void main(String[] args) { //这是一个窗口类 JFrame frame=new JFrame(); //设置窗口位置与大小 frame.setBounds(100,100,500,500); //用户关闭时会关闭所有窗口 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //设置这窗口可见,记得尽量要把这一句放在最后面 frame.setVisible(true); }
但是,这个窗口现在里面什么东西都没有.那我们该怎么添加呢?
我做一个比喻,现在我们的这个窗口相当于一个画板,而我们要画画,首先要在这个画板上面放上一张纸,然后再开始画.(当然,你也可以不放这一张纸,直接画在画板上面,不过,我个人并不建议这样做.)
所以,我们要有一张 "纸" ,也就是JPanel 对象,把他添加到窗口里面去
//创建一个面板,并且将这个面板添加到窗口里面去 JPanel panel=new JPanel(); frame.add(panel);
我们运行一下,发现和原来的窗口相比没有什么变化,嗯,当然,因为我们还没有往这一张"纸"里面画东西.
好,想一想平常一个窗口中一定会有什么东西? 对,没错,是按钮.
按钮的英文单词是什么? 是Button,因此我们就可以大概猜测到怎么添加按钮了
//创建一个按钮,并且将这个按钮添加到面板上面 JButton button=new JButton(); //设置按钮的文字内容 button.setText("按钮"); //添加按钮到面板 panel.add(button);
运行之后长这样:
这时有人便猜测,能不能给这个按钮设置位置和大小呢?
好,我们来试一下
//创建一个按钮,并且将这个按钮添加到面板上面 JButton button=new JButton(); //设置按钮的文字内容 button.setText("按钮"); //设置按钮的位置大小 button.setBounds(100,100,100,100); //添加按钮到面板 panel.add(button);
运行后发现....这不行啊,和原来的一样.
这就涉及到布局管理了,简单来说,就是JPanel对本身的内容有默认的方式,我们需要将这一种方式取消掉,我们设置的按钮位置大小才有效.即:
panel.setLayout(null);
现在的整体代码长这样:
public static void main(String[] args) { //这是一个窗口类 JFrame frame=new JFrame(); //设置窗口位置与大小 frame.setBounds(100,100,500,500); //用户关闭时会关闭所有窗口 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //创建一个面板,并且将这个面板添加到窗口里面去 JPanel panel=new JPanel(); frame.add(panel); //创建一个按钮,并且将这个按钮添加到面板上面 JButton button=new JButton(); //设置按钮的文字内容 button.setText("按钮"); //取消默认的布局管理 panel.setLayout(null); //设置按钮的位置大小 button.setBounds(100,100,100,100); //添加按钮到面板 panel.add(button); //设置这窗口可见,记得尽量要把这一句放在最后面 frame.setVisible(true); }
运行后发现效果改变了:
好,现在我们这个窗口里面已经有一个按钮了,但是这个按钮点了没有反应,所以我们要...