如何将JLabel文本放在JTextField上

时间:2014-01-28 17:54:00

标签: java swing user-interface jlabel jtextfield

如何在JTextField之上/之上添加JLabel简单文本。 我尝试了很多命令,你可以在我的代码中看到但是没有用。

这是我的代码的快照

private JPanel createTextPanel() {
        int panelWidth = PANEL_SIZE.width;
        int panelHeight =  PANEL_SIZE.height/3;
        Dimension panelSize = new Dimension(panelWidth,panelHeight);
        JPanel textPanel = new JPanel();
        textPanel.setPreferredSize(panelSize);
        //textPanel.setLayout(null);
        /* Add text */
        JLabel Text_RED = new JLabel();
        Text_RED.setText("Red");
        //Text_RED = new JLabel("\nRED\n");
        //Text_RED.setHorizontalTextPosition(SwingConstants.TOP);
        //Text_RED.setVerticalAlignment(SwingConstants.TOP);
        Red = new JTextField(3);
        //Red.setVerticalAlignment(JTextField.TRAILING );
        Red.setLocation(100,100);

        //Red.setLocation(50, 50);
        JLabel Text_Green = new JLabel("Green");
        Green = new JTextField(3);

        JLabel Text_Blue = new JLabel("Blue");
        Blue = new JTextField(3);

        //setLayout(new GridLayout(2,2,10,10));
        textPanel.add(Text_RED);
        textPanel.add(Red);

        textPanel.add(Text_Green);
        textPanel.add(Green);

        textPanel.add(Text_Blue);
        textPanel.add(Blue);

        return textPanel;
    }

1 个答案:

答案 0 :(得分:3)

建议:

  • 不要使用空布局和绝对定位。虽然最初看起来使用这些工具是创建复杂GUI的最简单方法,但它实际上是一个新手谬误,因为您越了解并使用布局管理器,您就越发现它们更容易创建GUI的工作,结果更有吸引力。
  • 了解并使用布局管理器。 Tutorial link
  • 考虑使用BorderLayout并在BorderLayout.PAGE_END中添加JLabel BorderLayout.CENTER和JTextField。作为旁注,我通常避免将JTextField放在BorderLayout.CENTER位置,因为如果GUI改变大小,这将导致字段的水平拉伸,我认为这不是美学上的。