3

哦,干草在那里,没看到你。我想知道是否有比我在下面所做的更好、更有效的方式来格式化 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());
 }
4

1 回答 1

7

看来您需要了解更多关于LayoutManagers. 它们帮助您以不同的方式布局组件。

查看 Java 教程。它们可能是开始使用不同布局的最佳方式。

这是教程的链接:

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

在您的情况下,您似乎想使用BoxLayout. 您应该将所需的组件放在自己的一行中JPanel。然后,将每个添加JPanelgeneralPanel. 您需要将 的布局管理器设置generalPanelBoxLayout

generalPane.setLayout(new BoxLayout(generalPane, BoxLayout.Y_AXIS));
于 2010-08-14T02:33:31.993 回答