结构这样
┳JFrame
┗━┳JScrollPane
┗━┳JPanel
┗━┳JButton1
┣JButton2
┗JButton3
我使用到了JScroolPane, 但是当Panel里面的控件很多时,滚动条不会自动出来.
代码如下.诸位帮我实现:
1.控件可以自定义大小, 如: JButton可以由程序设计者控制其大小和位置.
2.当控件太大,超过窗体大小时,可以自动显示滚动条.
3.注意JPanel里面放的控件多于一个.3条同时具备.
public class myFrame extends JFrame
{
private JButtonbt1 = new myButton("bt1======================");
private JButtonbt2 = new myButton("bt2======================");
private JButtonbt3 = new myButton("bt3======================");
private JPanel p = new JPanel ();
private JScrollPane sp = new JScrollPane (p);
public myFrame()
{
getContentPane().add(sp);
p.setLayout(null);
p.add(bt1,BorderLayout.CENTER );
bt1.setLocation(40,40 );
p.add(bt2,BorderLayout.WEST );
bt2.setLocation(80,80);
p.add(bt3,BorderLayout.EAST);
}}
┳JFrame
┗━┳JScrollPane
┗━┳JPanel
┗━┳JButton1
┣JButton2
┗JButton3
我使用到了JScroolPane, 但是当Panel里面的控件很多时,滚动条不会自动出来.
代码如下.诸位帮我实现:
1.控件可以自定义大小, 如: JButton可以由程序设计者控制其大小和位置.
2.当控件太大,超过窗体大小时,可以自动显示滚动条.
3.注意JPanel里面放的控件多于一个.3条同时具备.
public class myFrame extends JFrame
{
private JButtonbt1 = new myButton("bt1======================");
private JButtonbt2 = new myButton("bt2======================");
private JButtonbt3 = new myButton("bt3======================");
private JPanel p = new JPanel ();
private JScrollPane sp = new JScrollPane (p);
public myFrame()
{
getContentPane().add(sp);
p.setLayout(null);
p.add(bt1,BorderLayout.CENTER );
bt1.setLocation(40,40 );
p.add(bt2,BorderLayout.WEST );
bt2.setLocation(80,80);
p.add(bt3,BorderLayout.EAST);
}}
这句可以去掉吧。
应该是:
p.setLayout(new BorderLayout());
p.setLayout(null);
只是为了让兄弟们看到运行效果.
其实这里把layout设置成null肯定是没有滚动条的,
但是如果设置成JDK中提供的Layout, 不能有效控制组件大小.(包括GridbagLayout在内)问题已经解决,
编写自己的Layout Manager,或者使用三方提供的Layout manager