首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Jpanel和Graphics的错误

Jpanel和Graphics的错误
EN

Stack Overflow用户
提问于 2013-05-28 23:03:54
回答 1查看 257关注 0票数 1

当我尝试使用paint(Graphics g)代码时出现错误。你可以帮助解决代码,以便有一个三维矩形的窗口。谢谢!

代码语言:javascript
复制
private static void paint(Graphics g){
    g.draw3DRect(10, 10, 50, 50, true);

然后走向底部:

代码语言:javascript
复制
public static void main(String[] args) {
    //Schedule a job for the event-dispatching thread:
    //creating and showing this application's GUI.
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            createAndShowGUI();
            paint();

        }
    });
}


}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-05-28 23:17:22

在Java中,重写时不能降低方法的可见性。同样,实例方法也不能成为static。它必须是

代码语言:javascript
复制
@Override
public void paint(Graphics g){
    super.paint(g);
    g.draw3DRect(10, 10, 50, 50, true);
}

在Swing中,不要在顶级窗口(如JFrame )中进行自定义绘制。相反,创建JComponent的子类并覆盖paintComponent,并确保调用super.paintComponent(g)

代码语言:javascript
复制
class MyComponent extends JComponent {

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);
        g.draw3DRect(10, 10, 50, 50, true);
    }

    @Override
    public Dimension getPreferredSize() {
        return new Dimension(400, 300);
    }
}

不要忘记将新组件的实例添加到JFrame

代码语言:javascript
复制
frame.add(new MyComponent());
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16795371

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档