首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >paintComponent调用变量

paintComponent调用变量
EN

Stack Overflow用户
提问于 2014-02-13 00:59:48
回答 2查看 290关注 0票数 0

情况是这样的。我有这个代码。当您删除第二个类中的变量a时。程序正在运行。它只是画了一条线。但我想把一个变量设为"a“。然后在头等舱中,我想声明它。那我就想用它。我怎么能做到这一点。

基本上,在NewLabel方法中,我可以将变量a放在第一个类(Grafik3)中的哪里,以便在第二个类中工作?

代码语言:javascript
复制
public class Grafik3 extends  JFrame{

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    public Grafik3()

    {        add(new YeniLabel("Paint component.............. "));          }

    public static void main(String[] args){

        Grafik3 cer = new Grafik3();

        cer.setTitle("Paint component");
        cer.setLocationRelativeTo(null); // çerçevenin merkezi
        cer.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        cer.setSize(300,120);
        cer.setVisible(true);

    }

}


class YeniLabel extends JLabel {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;

    public YeniLabel(String s){super(s); }

    protected void paintComponent(Graphics g,int a){

        super.paintComponent(g);
        g.drawLine(a, 0, 70, 70);

    }


}
EN

回答 2

Stack Overflow用户

发布于 2014-02-13 01:02:22

如果你这样做,你就不会再重写这个函数了。您正在创建重载。这不是你想要的。相反,请尝试使int a成为类成员,并在呈现组件之前将变量设置为适当的值。

它不工作的原因正是因为您为该方法创建了一个重载。这意味着渲染时不使用此方法。取而代之的是使用原始的paintComponent(Graphics)方法。用于渲染的调用始终是paintComponent(Graphics)。因此,如果您在具有相同名称但参数不同的原始方法旁边创建一个方法(这称为重载),则此方法不会替换原始方法,而只是一个新方法,它们同时存在。

票数 0
EN

Stack Overflow用户

发布于 2014-02-13 01:03:33

调用getter函数。

在你的主类中:

代码语言:javascript
复制
YeniLabel yeni = new YeniLabel("Paint component.............. ");
add(yeni);

//whenever you want to get it:
int a = yeni.getA();

在你的YenniLabel类中:

代码语言:javascript
复制
class YeniLabel extends JLabel {


    int a = 25;

    public YeniLabel(String s){super(s); }

    public void getA(){
       return a;
    }

    protected void paintComponent(Graphics g){

        super.paintComponent(g);
        g.drawLine(a, 0, 70, 70);

    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21734517

复制
相关文章

相似问题

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