[英]Change JFrame background color
創建了一個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);
嘗試frame.getContentPane().setBackground(new java.awt.Color(242, 186, 152));
不要在框架上工作,在frame.getContentPane()上工作。 這也是應該設置子面板和布局的地方。 此外,您使用了Gridbag約束,但從未首先設置Gridbag布局。 同時,添加到框架,即使確實添加到內容窗格,也沒有指定內容窗格布局。
在對代碼進行更改之后,我發現問題是由GridBagConstraints c = new GridBagConstraints();引起的。 所以我通過使用panel.setLayout(null);改變了它 然后使用setBounds調整組件標簽的位置。setBounds(100,30,250,10); 一切都還好
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.