JFrame mainFrame = new JFrame();
mainFrame.setSize(100, 100);
mainFrame.setBackground(Color.CYAN);
mainFrame.setVisible(true);
Run Code Online (Sandbox Code Playgroud)
我的目的是创建一个青色背景的窗口.这有什么问题?正如我所料,我的窗户没有青色!
此外,任何人都可以指出为什么我似乎有所有的颜色重复(有一个Color.CYAN和一个Color.cyan).这两者之间有什么不同吗?也许在Java中有枚举之前,较旧的那个是常量,第二个来自Enum?
谢谢
coo*_*ird 44
为什么窗户不是预期的青色?
这里的问题是JFrame显示内容的区域实际上是"内容窗格",而不是JFrame自身的内容.
因此,以下行:
mainFrame.setBackground(Color.CYAN);
Run Code Online (Sandbox Code Playgroud)
正在改变颜色JFrame,但实际上并不是显示时立即可见的部分JFrame.
通过将上面的行更改为以下内容,我们需要更改所谓的"内容窗格*"的颜色(请参阅如何使用根窗格进行说明):
mainFrame.getContentPane().setBackground(Color.CYAN);
Run Code Online (Sandbox Code Playgroud)
在Swing中使用Frames在开始时可能会出乎意料地不直观,因此我强烈建议您查看我在此答案底部列出的资源.
有没有之间的差异Color.CYAN和Color.cyan?
不,两者之间没有区别 - 它们都是Color类中常量的Color对象本身.唯一的区别在于常量的名称.
引入Color类时引入了具有小写名称的常量(似乎是JDK 1.0,因为Color类的Java API规范中没有"Since"符号),并且稍后在JDK 1.4中添加了大写名称.
可能添加了另外大写命名常量,使常量名在Color类的一贯准则约定Java编程语言,其在第9节:命名约定声明常量应全部大写.
资源
有关如何使用框架的更多信息,Java教程中的以下资源将是您感兴趣的: