不知道为什么,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);