2011-09-11 43 views
2

我是一名java新手,目前我正在使用菜单,滚动窗格和textarea编写一个简单的应用程序。ScrollPane在我调整窗口大小之前不显示

到目前为止,我已经得到了我想要的所有内容,但是当我启动我的应用程序时,scrollpane/textarea不会显示,直到我重新调整窗口。

我一直在使用重绘方法试图在其他论坛类似的问题,建议,但没有奏效,也许我没有正确地使用它:S

这里是我的类:

public class FenetreEditeur { 

public static void main(String[] args){ 
    FenetreEditeur f = new FenetreEditeur(); 
} 

public FenetreEditeur(){ 
    JFrame frame = new JFrame(); 
    frame.setVisible(true); 
    frame.setSize(400,400); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setLocationRelativeTo(null); 

    initMenuBar(frame); 

    JTextArea areaMain = new JTextArea(); 
    JScrollPane scrollPane = new JScrollPane(areaMain); 

    frame.add(scrollPane); 
} 

private void initMenuBar(JFrame frame){ 
    JMenuBar menu = new JMenuBar(); 

    JMenu revision = new JMenu("Revision"); 

    JMenuItem statistiques = new JMenu("Statistiques"); 
    JMenuItem grammaire = new JMenu("Grammaire et orthographe"); 
    JMenuItem analyse = new JMenu("Analyse Automatique"); 

    menu.add(revision); 

    revision.add(statistiques); 
    revision.add(grammaire); 
    revision.add(analyse); 

    frame.setJMenuBar(menu); 
}} 

任何帮助/提示将不胜感激。

谢谢!

回答

9

呼叫scrollPanel.revalidate()添加它,或更好后,移动frame.setVisible(true)到最后:

public FenetreEditeur(){ 
    JFrame frame = new JFrame(); 
    frame.setSize(400,400); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setLocationRelativeTo(null); 

    initMenuBar(frame); 

    JTextArea areaMain = new JTextArea(); 
    JScrollPane scrollPane = new JScrollPane(areaMain); 

    frame.add(scrollPane); 
    frame.setVisible(true); 
} 
+0

正确sugestion +1 – mKorbel