我不认为这是重复的,因为其他问题与 JButtons 和 JPanels 有关。
我想知道为什么 java 中的以下内容不能像人们想象的那样工作:
import javax.swing.JApplet;
import java.awt.*;
public class Example extends JApplet
{
public void paint(Graphics page)
{
setBackground (Color.cyan);
}
}
基本上,当我运行小程序时,无论颜色如何,背景都不会改变。我意识到还有其他选项可以达到相同的效果,但我正在使用教科书中的示例,并且想知道为什么它在我的机器上不起作用。
最佳答案
but I am using examples from a textbook
摆脱课本。您永远不应该重写 JApplet 的 Paint() 方法(这是一种旧的 AWT 技术,不与 Swing 一起使用)。
Swing 中的 Applet 就像 Swing 中的应用程序一样。您可以将组件添加到小程序的内容 Pane 中。如果需要自定义绘画,可以通过重写 JPanel(或 JComponent)的 PaintComponent() 方法来完成,然后将面板添加到内容 Pane 。
如果您想更改小程序的背景,则可以更改内容 Pane 的背景(或添加到内容 Pane 中心的面板的背景)。像这样的东西:
getContentPane().setBackground( Color.CYAN );
此代码将在 init() 方法中执行。
首先阅读Swing tutorial 。其中有关于如何制作小程序
和“执行自定义绘画”的部分。
关于java - setBackground 不适用于小程序背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8651915/