我想在Java中的同一个JFrame上显示2个JLabel

时间:2014-04-15 07:24:16

标签: java swing jframe jlabel

我无法让JLabel片段出现在同一个JFrame上。我试过调整大小;但它不起作用。我需要将JLabel放在JPanel中吗?我希望两个JLabel'在同一个JFrame上显示。任何帮助表示赞赏。感谢。

public class HelloWorldFrame extends JFrame
{
    private TitledBorder title;
    private TitledBorder title2;

    public HelloWorldFrame()
    {
        super("Hello World!                  ");
        JFrame helloWorld = new JFrame();
        JLabel label = new JLabel();

        title = BorderFactory.createTitledBorder("Language");
        title.setTitleJustification(TitledBorder.LEFT);
        label.setBorder(title);
        add(label);

        setSize(300, 200);

        JRadioButton button1 = new JRadioButton("English");
        JRadioButton button2 = new JRadioButton("French");
        JRadioButton button3 = new JRadioButton("Spanish");

        label.setLayout(new FlowLayout());
        label.add(button1);
        label.add(button2);
        label.add(button3);

        JLabel label2 = new JLabel();
        title2 = BorderFactory.createTitledBorder("Greeting");
        title2.setTitleJustification(TitledBorder.LEFT);
        label2.setBorder(title2);
        label2.setSize(100, 100);
        add(label2);

        helloWorld.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    }
}

//The main begins below

import javax.swing.JFrame;

public class HelloWorldApp
{
    public static void main(String[] args)
    {
        JFrame helloWorld = new HelloWorldFrame();
        helloWorld.setVisible(true);    
    }

}

2 个答案:

答案 0 :(得分:0)

您需要布局管理器,例如this示例。

答案 1 :(得分:0)

您应该拥有的结构是:JFrame> JPanel> JLabel

JFrame frame = new JFrame();
JPanel panel = new JPanel();

JLabel label_1 = new JLabel("some text");
JLabel label_2 = new JLabel("other text");

panel.add(label_1);
panel.add(label_2);

frame.add(panel);
frame.pack();
frame.setVisible(true);

在您的代码中,您有一些JButton:将其添加到JPanel,而不是JLabel