Проблема выравнивания графического интерфейса Java Swing - PullRequest
0 голосов
/ 04 марта 2011

Привет,

Я быстро изучаю Java, но кое-что, что я действительно могу сломать, - программирование на Java.Исходя из легкой жизни C #, это полный вызов, чтобы заставить мой пользовательский интерфейс работать.Я знаю, что абсолютные макеты здесь не обсуждаются.

Я столкнулся со следующей проблемой.

В моей панели содержимого (BorderLayout) у меня есть JScrollPanel с JTable и меню в верхней частиприложение.

Проблема в том, что я хочу добавить компонент к югу от макета границы (JScrollPane прикреплен к центру), и я хочу добавить к нему прокручиваемую JTextArea.

Моя мысль состояла в том, чтобы добавить новый JPanel, дать ему макет (не знаю, какой из них лучше в этом случае ... предложения приветствуются), добавить JScrollpanel на эту панель и поверх этого добавить JTextArea.Я пробовал это и графически, это сработало.Тем не менее, настолько неуклюже, насколько это МОЖЕТ быть запрограммировано, JTextArea имеет достаточно большую высоту, очень похожую на JTextField.

Я хочу, чтобы он был по крайней мере на 4 строки и прокручивался.Вот мой код GUI:

setTitle("Game Manager");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setBounds(100, 100, 620, 498);


    JMenuBar mbMainMenu = new JMenuBar();
    setJMenuBar(mbMainMenu);

    JMenu mnFile = new JMenu("File");
    mbMainMenu.add(mnFile);
    contentPane = new JPanel();
    contentPane.setLayout(new BorderLayout(0, 0));
    setContentPane(contentPane);

    JScrollPane scrollPane = new JScrollPane();
    contentPane.add(scrollPane, BorderLayout.CENTER);

    tblGames = new JTable(new GamesTableModel(mainController.retrieveGames()));
    tblGames.setShowVerticalLines(true);
    tblGames.setShowHorizontalLines(true);
    tblGames.setPreferredScrollableViewportSize(new Dimension(500, 70));
    tblGames.setFillsViewportHeight(true);
    tblGames.setAutoCreateRowSorter(true);
    tblGames.getTableHeader().setReorderingAllowed(false);
    scrollPane.setViewportView(tblGames);

Итак, под JTable я хочу иметь JtextArea в JScrollPane, высота которого превышает одну строку.

Я в полной растерянности дляэто исправление.

Приветствуются любые советы, не только по самому графическому интерфейсу, но и по соглашениям об именах.

Этот проект только для самообучения, потому что наша школа хочет преподавать C #, а не Java.Java для меня более естественна, чем C #. На мой взгляд, она более приятна. Достаточно о нем.

Пожалуйста, оставьте свои комментарии / советы / ответ ^^

Ваша помощьвысоко ценится!

решено

решение:

    JScrollPane gameDescriptionScrollPane = new JScrollPane();
contentPane.add(gameDescriptionScrollPane, BorderLayout.SOUTH);

taGameDescription = new JTextArea();
taGameDescription.setRows(4);

Спасибо: mklhmnn

Урок дня: внимательно прочитайте документацию, а не просто посмотрите на нееи думаю, что вы прочитали это!

1 Ответ

1 голос
/ 04 марта 2011

У вас есть два варианта:

  • создать JTextArea с предпочтительным количеством столбцов или строк или
  • установить минимальный и предпочтительный размер окружения JScrollPane
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...