面板和按钮已添加到框架中,但未出现在框架中

问题描述 投票:-1回答:1

面板和按钮已添加到框架中,但未出现在框架输出中。

import javax.swing.*;
import java.awt.*;
public class frameeg
{

    public static void main(String s[])
    {
        JFrame frame = new JFrame("Frame eq");
        JPanel panel = new JPanel();               //panel not working
        panel.setLayout(new FlowLayout());
        JLabel label = new JLabel("JFrame by example");
        JButton button = new JButton();
        button.setText("Button");
        panel.add(label);
        panel.add(button);
        frame.add(panel);
        frame.setLayout(null);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setSize(200,300);
    }
}
java swing jframe jpanel jbutton
1个回答
0
投票

您决定使用null-layout,这需要您指定内部所有元素的界限(setBounds(...)),否则它将显示为width = 0height = 0

但是您不应该像null-layout那样使用it's evil,并且在以不同的PLAF /屏幕尺寸/分辨率等运行程序时,会引起一些有趣的/奇怪的/难以解决的问题,例如this one。] >

为此,我建议您删除此行:

frame.setLayout(null);

替换此行:

frame.setSize(200,300);

为此:

frame.pack();

并在main方法的最后移动此行:

frame.setVisible(true);

并且不要忘记将程序放在EDT上(如链接的答案所示)

© www.soinside.com 2019 - 2024. All rights reserved.