JFrame颜色变化

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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();
答案

摇摆不是Thread友好,尝试学习SwingUtility.InvokeLater

要改变Color使用JFrame.setBackGround(color)

现在你将如何切换?

对我来说,最好的方法是创建一个名为ClassUtil

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课程或部分只需要打电话给Util.setBC(frame)

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

以上是关于JFrame颜色变化的主要内容,如果未能解决你的问题,请参考以下文章

如何更改 JFrame 的颜色?

选项卡颜色变化

java窗口背景颜色怎么设定?用setBackground()好像不行,请大侠指教!

为 JFrame 设置背景颜色

如何更改默认的 JFrame 窗口颜色?

双击图标时关闭JFrame