Размещение компонентов в Java Swing - PullRequest
3 голосов
/ 14 августа 2010

О, сено, не видел тебя. Мне было интересно, есть ли лучший, более эффективный способ форматирования меток, панелей и кнопок в Java, чем то, что я сделал ниже. Вот мой код, я хочу сделать приветствие, дату и кнопку, чтобы все были в отдельных строках. И единственный логичный способ сделать это - создать пустые метки, верно?

private void GeneralTab() {
  generalPanel = new JPanel(new FlowLayout());
  String currentTime = SimpleDateFormat.getInstance().format(
    Calendar.getInstance().getTime());
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel("WELCOME "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" ")); 
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel("                  "));
  generalPanel.add(new JLabel("Today's Date: " + currentTime));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
  generalPanel.add(new JLabel(" "));
   generalPanel.add(createExitButton());
 }

1 Ответ

7 голосов
/ 14 августа 2010

Похоже, вам нужно больше узнать о LayoutManagers.Они помогают разметить компоненты по-разному.

Ознакомьтесь с руководствами по Java.Это, вероятно, лучший способ начать использовать разные макеты.

Вот ссылка на руководство:

http://download.oracle.com/javase/tutorial/uiswing/layout/visual.html

В вашемпохоже, вы хотите использовать BoxLayout.Вы должны поместить компоненты, которые вы хотите, в одну строку в их собственной JPanel.Затем добавьте каждый JPanel к generalPanel.Вам нужно установить менеджер раскладки generalPanel на BoxLayout примерно так:

generalPane.setLayout(new BoxLayout(generalPane, BoxLayout.Y_AXIS));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...