ScrollPane не появляется, пока я не изменю размер окна - PullRequest
2 голосов
/ 11 сентября 2011

Я новичок в Java и в настоящее время работаю над простым приложением с меню, полосой прокрутки и текстовой областью.

До сих пор я получил все, что хотел в форме, но когда я запускаю свое приложение, полоса прокрутки / текстовая область не будет отображаться, пока я не изменю размеры окна.

Я пытался использовать метод перекраски, как предлагалось на других форумах, для подобных проблем, но он не работал, возможно, я не правильно его использую: 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);
}}

Любая помощь / совет будет принята с благодарностью.

Спасибо!

1 Ответ

9 голосов
/ 11 сентября 2011

Позвоните 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);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...