2014-10-09 177 views
0

我試圖將顏色設置爲紅色。當我運行這個時,背景保持灰色。如果我使用setBackground,那麼會出現一個紅色背景,但隨後又變成了灰色。我怎樣才能解決這個問題?Java GUI設置顏色

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*; 
import javax.swing.border.TitledBorder; 


public class FinalProject extends JFrame { 

private JRadioButton jrbRed = new JRadioButton("Red"); 

private JRadioButton jrbBlue = new JRadioButton("Blue"); 

public FinalProject(){ 

setLayout(new FlowLayout(FlowLayout.LEFT, 20, 30)); 

JPanel jpRadioButtons = new JPanel(); 
jpRadioButtons.setLayout(new GridLayout(2,1)); 
jpRadioButtons.add(jrbRed); 
jpRadioButtons.add(jrbBlue); 
add(jpRadioButtons, BorderLayout.AFTER_LAST_LINE); 

ButtonGroup color = new ButtonGroup(); 
color.add(jrbRed); 
jrbRed.setMnemonic(KeyEvent.VK_B); 
jrbRed.setActionCommand("Red"); 
color.add(jrbBlue); 
jrbBlue.setMnemonic(KeyEvent.VK_B); 
jrbBlue.setActionCommand("Blue"); 

jrbRed.setSelected(true); 

最後,我將使用一個單選按鈕集合,使顯示顏色變爲所選內容。 免責聲明!這是我上課的最後一個項目,我不是在尋找我爲我完成的工作,因爲從長遠來看這會傷害我。 (對不起,如果我的語法不好,我只是有乳酸,我的視力非常模糊)

最重要的是謝謝任何和所有意見,一切都有助於一個人學習,我真的很感謝這個社區的幫助。

jrbRed.addActionListener(new ActionListener() { 
    @Override 
    public void actionPreformed(ActionEvent e){ 
    JPanel.setForeground(Color.red); 
} 
}); 
+0

我們可以看到您綁定到單選按鈕的動作偵聽器嗎? – 2014-10-09 19:20:34

+0

我將它添加到帖子中。儘管如此,這仍然充滿了不同的錯誤我嘗試了不同的東西來實現它的功能。我已經使用this.setForground,this.setBackground,JPanel.setForeground/Background,FinalProject.set ------你的想法 – 2014-10-09 19:25:34

回答

2

調用setBackground變化對RootPane這是不可見的背景顏色。由於ContentPane是您可以執行的框架的可見子容器

getContentPane().setBackground(Color.RED); 
+0

這是我的錯誤!非常感謝。回去爲我工作。非常感激。 – 2014-10-09 19:34:21

1

設置contentPane的背景而不是框架。

getContentPane().setBackground(Color.RED);