创建了一个JFrame并尝试更改背景,但是它不起作用。 我在这里和互联网上看了这么多解决方案,但都行不通,我的代码有什么问题
JFrame frame = new JFrame("Process");
JLabel label = new JLabel("Please wait...");
JProgressBar pb = new JProgressBar();
pb.setIndeterminate(true);
pb.setBackground(new java.awt.Color(248, 201, 171));
frame.setBackground(new java.awt.Color(242, 186, 152));
frame.setSize(400, 200);
frame.setLocationRelativeTo(null);
JPanel panel = new JPanel();
panel.setBackground(new java.awt.Color(242, 186, 152));
GridBagConstraints c = new GridBagConstraints();
c.insets = new Insets(10,10,10,10); // make spaces between components on screen
c.gridx = 0;
c.gridy = 0;
c.gridwidth = 20;
panel.add(label, c);
c.gridx = 1;
c.gridy = 1;
c.gridwidth = 20;
panel.add(pb, c);
frame.add(panel);
frame.setVisible(true);
答案 0 :(得分:0)
尝试frame.getContentPane().setBackground(new java.awt.Color(242, 186, 152));
答案 1 :(得分:0)
不在框架上工作,在frame.getContentPane()上工作。这也是应该设置子面板和布局的地方。此外,您使用了Gridbag约束,但从未首先设置Gridbag布局。同时,添加到框架,即使确实添加到内容窗格,也没有指定内容窗格布局。
答案 2 :(得分:0)
对代码进行更改后,我发现问题是由GridBagConstraints c = new GridBagConstraints();引起的。 所以我通过使用panel.setLayout(null);改变了它然后使用setBounds调整组件标签的位置。setBounds(100,30,250,10); 一切都很好