Java Swing JButton

标签 java swing jbutton

我创建了自定义按钮。为此我已经重写了paintComponenet方法。如何在此类按钮上设置按钮文本?我尝试使用drawString方法来做到这一点。但我应该给出哪些 x,y 值? (g.drawString("按钮文本",x,y))。如果有人处理过这个问题,请告诉我。

@Override
public void paintComponent(Graphics g) {
    super.paintComponent(g);

    DefaultButtonModel bmodel = (DefaultButtonModel) super.getModel();

    Image im = (new ImageIcon("image")).getImage();
    System.out.println("im is "+im.getSource());
    System.out.println("widthis" + im.getWidth(this));
    int imageX = (getWidth() - im.getWidth(this)) /2;
    int imageY = (getHeight() - im.getHeight(this)) / 2;
    if(!super.isEnabled()) {
        System.out.println("in disabled");
        g.drawImage(disabled, imageX, imageY, this);
       g.drawString( super.getText(), super.getX(),(int) (super.getY() / (1.9)));
    }
    else {
        if(bmodel.isPressed()) {
           System.out.println("in pressed");
            g.drawImage(down, imageX, imageY, this); 
        } else if(bmodel.isRollover()) {
            System.out.println("in roll overed");
            g.drawImage(highlight, imageX, imageY, this);
        } else if(bmodel.isEnabled()) {
            System.out.println("in enabled");
            g.drawImage(normal, imageX, imageY, this);
        } else {
            System.out.println("in else");
            g.drawImage(normal, imageX, imageY, this);
        }
        g.drawString( super.getText(), super.getX(),(int) (super.getY() / (2.5)));
    }



}

最佳答案

为什么不在paintComponent方法的第一行调用super(g)并使用setText方法来更改按钮上的字符串。

类似这样的事情:

protected void paintComponent(Graphics g)
{
   super.paintComponent(g);
   // do your customized painting here...
}

关于Java Swing JButton,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1893155/

相关文章:

java - 使用 HttpSessionListener 跟踪 Web 应用程序中的 session 总数

Java 嵌套 JPanel 不保持指定的大小

java - 使用按钮显示/隐藏 JLabel?

java - 如何从 groupbutton 中检索 jbuttons 文本

java - 在 struts2 messages.properties 中插入新行

java - Java 中没有 instanceof 或 getClass() 的动态调度

Java - 进度条不显示(线程)

java - 带背景的 Jframe.Jbutton

java - 如何制作 JButton,按下时会执行新操作

java - 嵌套 while 循环的大 O 符号解释