java - setBackground 不适用于小程序背景

标签 java swing user-interface awt

我不认为这是重复的,因为其他问题与 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/

相关文章:

java - DataSourceTransactionManager 和 JndiObjectFactoryBean 和 JdbcTemplate 有什么用?

java - 如何为 <![CDATA[]]> 解析 XML

java - getItem()、getSelectableItem() 和 getSource() 之间有什么区别?

java - 使用 Arraylist 填充 JCombobox

java - JPanel在使用延迟时不会实时更新

user-interface - 如何弥合我的数据库设计和用户界面设计之间的差距?

java - 如何使用Xtend框架生成2个Java类

java - ARFragment 和 GLSurfaceView 在一个 Activity 中兼容吗?

java - JCheckBox 防止在单击文本时更改选中状态

ios - 关闭键盘后让 inputAccessoryView 可见