JFrame newLineFrame = new JFrame();
JPanel newLinePanel = new JPanel();
newLineFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
newLineFrame.setSize(500, 500);
newLineFrame.setResizable(false);
newLineFrame.setVisible(true);
newLinePanel.setOpaque(true);
newLinePanel.add(new JLabel("Hello"));
newLineFrame.add(newLinePanel);
newLineFrame.repaint();
上面是我的代码的一小部分,用于创建新的JFrame。 JFrame不是显示JLabel,而是显示创建它时背后的内容。
有谁知道这是为什么以及如何解决这个问题? 提前致谢!
答案 0 :(得分:0)
JFrame
显示他的组件内容。您正在向JFrame
内部添加一个组件,并将其添加到您contentPane
JPanel
的{{1}}内,之后您将添加另一个组件JPanel
{1}}。
我不确定这是否是你问题的原因,但那肯定是错的。相反,这样做:
JFrame newLineFrame = new JFrame();
JPanel newLinePanel = new JPanel();
newLineFrame.setContentPane(newLinePanel);
newLineFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
newLineFrame.setSize(500, 500);
newLineFrame.setResizable(false);
newLineFrame.setVisible(true);
newLinePanel.setOpaque(true);
newLinePanel.add(new JLabel("Hello"));
newLineFrame.repaint();
尝试一下,让我知道它是否有效:)