Jframe paint class to red不起作用

时间:2017-10-16 22:24:02

标签: java events background jframe paint

嗨我试着以不同的颜色显示我的Jframe,因为我的老师要求我这样做,但它只会弹出红色然后正常的基本灰色会回来,我不明白为什么这里是代码:

(PS,如果你也可以给我替代品,我需要添加一个帮助按钮和另一个JCombobox将我的东西转换为另一个选择但它不起作用谢谢你)

package conversions;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Iterator;
import java.util.Scanner;


class ConversionsFrame extends JFrame implements ActionListener {
    JLabel label1,label2;
    JTextField text2 = new JTextField();
    JTextField text1 = new JTextField();
    JComboBox combo1 = new JComboBox();
    JComboBox combo2 = new JComboBox();
    JPanel simplePanel =new JPanel();

    @Override
public void paint(Graphics g) {
    g.setColor(Color.red);
    g.fillRect(0, 0, this.getWidth(), this.getHeight());
}


    public ConversionsFrame(){

        setTitle("Fenêtre de conversion");
        setSize(600,300);    
        setResizable(true);
        setLocationRelativeTo(null);

        combo1.addItem("Distances");
        combo1.addItem("Volumes");
        combo1.addItem("Masses"); 
        simplePanel.add(combo1);
        combo2.insertItemAt("Mètres",0);
        combo2.insertItemAt("Décimètres",1);
        combo2.insertItemAt("Centimètres",2);
        combo2.insertItemAt("Milimètres",3);
        simplePanel.add(combo2);

        label1=new JLabel("Unités");
        simplePanel.add(label1);   
        text1=new JTextField(10);
        simplePanel.add(text1);
        label2=new JLabel ("Résultat");
        simplePanel.add(label2);
        text2=new JTextField(10);
        simplePanel.add(text2);



         add(simplePanel);

        combo1.addActionListener(new ActionListener(){
            public void actionPerformed(ActionEvent e){

                switch ((String)combo1.getSelectedItem()){
                    case("Distances"):
                        combo2.removeAllItems();
                        combo2.insertItemAt("Mètres",0);
                        combo2.insertItemAt("Décimètres",1);
                        combo2.insertItemAt("Centimètres",2);
                        combo2.insertItemAt("Milimètres",3);
                        break;                    
                    case("Volumes"):
                        combo2.removeAllItems();
                        combo2.insertItemAt("Litres",0);
                        combo2.insertItemAt("Décilitres",1);
                        combo2.insertItemAt("Centilitres",2);
                        combo2.insertItemAt("Mililitres",3);
                        break;
                    case("Masses"):
                        combo2.removeAllItems();
                        combo2.insertItemAt("Grammes",0);
                        combo2.insertItemAt("Décigrammes",1);
                        combo2.insertItemAt("Centigrammes",2);
                        combo2.insertItemAt("Miligrammes",3);
                        break;  
                }
                simplePanel.add(combo2);


             //   getContentPane().add(simplePanel);
            }
        });

    }

    public void actionPerformed(ActionEvent event){

        System.out.println("Option choisie: "+combo1.getSelectedItem());

    }
}

1 个答案:

答案 0 :(得分:0)

好的我找到了:

public ConversionsFrame(){

        setTitle("Fenêtre de conversion");
        setSize(600,300);    
        setResizable(true);
        setLocationRelativeTo(null);
        simplePanel.setBackground (java.awt.Color.RED) ;