JFrame颜色变化

时间:2019-04-17 14:23:47

标签: java swing jframe

我有一个JFrame出现在计时器的末尾。下面的代码弹出框架和声音。从菜单中设置框架的颜色,然后将其提供给框架。我需要框架在默认颜色和我在菜单中选择的颜色之间切换。预先感谢

new Thread(new Runnable()
      {
        public void run()
        {
            JFrame frame= new JFrame(); 
    frame.setVisible(true);
            frame.setSize(600, 400);
            frame.setLocation(200, 200);
            frame.setTitle("ALARM");
            frame.getContentPane().setBackground(GUI.this.timerPanel.colorButton.getBackground());  // *This is the source for the color i select in the menu* 
            JLabel welcome = new JLabel("",SwingConstants.CENTER);
            welcome.setFont(new Font("Serif", Font.PLAIN, 48));
            welcome.setText("ALARM ALARM ALARM");
            frame.add(welcome);
            new SoundEngine().playSound();





        }
      })

        .start();

1 个答案:

答案 0 :(得分:1)

摇摆不友好Thread,请尝试了解SwingUtility.InvokeLater

要更改Color,请使用JFrame.setBackGround(color)

现在您将如何切换?

对我来说,最好的方法是创建一个名为Class的{​​{1}}。

Util

现在在您的扩展 public class Util{ private static int ser=0; private static Color[] backColor=new Color[]{Color.red,Color.green,Color.white}; public static void setBC(JFrame frame){ frame.setBackGround(backColor[ser++%backColor.lenght]); } 类或部分中,只需调用JFrame即可。

它会在这三种颜色之间变化,您可以根据需要添加更多或什至删除soem。