JPanels:一个带有JTextArea,另一个带有JLabel

时间:2014-02-18 20:35:43

标签: java swing user-interface layout layout-manager

我现在已经在这一段时间了,但我似乎无法掌握它。我正在尝试生成一个JPanel,上面有一个JTextArea,下面有两个JLabel,但是我的JLabel最终位于我的JTextArea的左侧,我不能让另一个出现。

这是我的代码(抱歉显示内容 - 只是填充物):

public JPanel contentPane() {
    JPanel something = new JPanel();

    String information = "Please";

    info = new JTextArea(information, 4, 30);
    info.setEditable(false);
    info.setLineWrap(true);
    info.setWrapStyleWord(true);

    JPanel one = new JPanel(new BorderLayout());
    one.setBackground(Color.WHITE);
    one.setLocation(10, 10);
    one.setSize(50, 50);
    one.add(info, BorderLayout.CENTER);
    something.add(one, BorderLayout.NORTH);

    JPanel two = new JPanel(new BorderLayout());
    two.setBackground(null);
    two.setLocation(220, 10);
    two.setSize(50, 50);
    two.add(new JLabel("Please work"), BorderLayout.EAST);
    two.add(new JLabel("Oh gosh, please"), BorderLayout.WEST);
    something.add(two, BorderLayout.SOUTH);

    something.setOpaque(true);
    return something;
}

public static void GUI() {
    JFrame frame = new JFrame("You Guessed It!");

    DisplayStudent panel = new DisplayStudent();
    frame.setContentPane(panel.contentPane());

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(400, 150);
    frame.setVisible(true);
}

请所有花时间提供帮助的人,谢谢你们。

1 个答案:

答案 0 :(得分:6)

当您创建某些内容时,您没有指定任何布局管理器,但稍后您尝试使用一个添加一个 BorderLayout常量 - 这是行不通的,因为JPanel的默认布局管理器是FlowLayout。

试试这个;

JPanel something = new JPanel(new BorderLayout());