JScrollPane为什么无法显示到jframe或者jpanel上
不知道为什么,JScrollPane就是不显示到jframe上,必须变动一下窗口大小,让系统因Resizable而自动调用repaint方法重绘时,才会显示出来。下面是主要代码。
Java code
//这是我的构造方法
setLayout(new BorderLayout());
setSize(300, 200);
setLocationRelativeTo(null);
setVisible(true);
conn = MySQL.getInstance().getConnection();//连接数据库,我在MySQL类中写好了
JTable jt=createJTable();//调用一个创建JTable的方法,和问题无关,没贴
JButton jbBack=new JButton("back");
jbBack.setSize(100,20);
add(jbBack,BorderLayout.SOUTH);
JScrollPane scrollPane = new JScrollPane(jt);
add(scrollPane,BorderLayout.CENTER);
//以下两句我写和不写一个样,都不会显示出来
scrollPane.setVisible(true);
repaint();
------解决方案--------------------
你把JFrame 的setVisible(true)方法放到最后!;
------解决方案--------------------
呵呵,这个问题属于初始化问题,上次我们也是遇到类似的问题了。
首先把窗体里想有的构件都添加好,之后在显示出来就好了。。。
我的习惯是这样写的:
conn = MySQL.getInstance().getConnection();//连接数据库,我在MySQL类中写好了
JTable jt=createJTable();//调用一个创建JTable的方法,和问题无关,没贴
JButton jbBack=new JButton("back");
jbBack.setSize(100,20);
add(jbBack,BorderLayout.SOUTH);
JScrollPane scrollPane = new JScrollPane(jt);
add(scrollPane,BorderLayout.CENTER);
setLayout(new BorderLayout());
setSize(300, 200);
setLocationRelativeTo(null);
setVisible(true);