如何在按下按钮时添加到jlabel的x边界

时间:2016-11-22 01:56:00

标签: java swing jbutton jlabel bounds

我想要完成的是简单的,我按下JButton(称为'right')并且JLabel的x边界增加100,有效地将JLabel 100像素向右移动。我一直在尝试诸如以下的东西:

        if(clicked == right) {
            piece.getBounds().x = +100;
        }

我试过了:

        if(clicked == right) {
            piece.addBounds(100,0,0,0);
        }

对于JLabel类型,方法addBounds未定义 所以我试过了:

        if(clicked == right) {
            piece.setBounds(+100,0,0,0);
        }
显然,以上所有内容都不起作用,但值得一试。有没有办法做我想做的事情?

2 个答案:

答案 0 :(得分:0)

边界实际上是一个Rectangle,因此您可以获取JLabel的边界,前进其x位置,然后通过调用适当的方法设置边界:

Rectangle bounds = piece.getBounds();  // get the bounds
bounds.x += 100;    // increment the x value
piece.setBounds(bounds);   // re-set the new bounds

repaint();   // call repaint on the container that holds the JLabel so it is repainted

答案 1 :(得分:0)

如果我没记错的话,Java中的swing组件需要在对它们进行更改时重新绘制。

尝试简单地调用" repaint()"按下按钮并更改组件的更改方法。