如何更改JLabel的位置?

用户名

我正在尝试使用计时器将JLabel的位置从JPanel上的一个位置更改为另一个位置。我不确定是否可以使用say .getLocation(),然后仅更改水平x值,最后使用它.setLocation()来有效地修改JLabel。我也使用了.getBounds.setBounds,但是仍然不确定如何获取旧的水平x值以进行更改并重新应用到新的x值。

我尝试的代码看起来像这样,但是这都不是更改JLabel位置的有效方法。

// mPos is an arraylist of JLabels to be moved.

for(int m = 0; m < mPos.size(); m++){
        mPos.get(m).setLocation(getLocation()-100);
    }

要么

    for(int m = 0; m < mPos.size(); m++){
        mPos.get(m).setBounds(mPos.get(m).getBounds()-100);
    }

如果我可以获取水平x值的位置,则可以更改标签的位置。

奥伯德马什

我做了一个类似的例子,只是您可以得到它的基本玩笑,请尝试将其复制粘贴到一个名为“ LabelPlay”的新类中,它应该可以正常工作。

import java.awt.EventQueue;
import java.util.Random;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;


public class LabelPlay {

private JFrame frame;
private JLabel label;
private Random rand;

public static void main(String[] args) {
    EventQueue.invokeLater(new Runnable() {
        public void run() {
            try {
                LabelPlay window = new LabelPlay();
                window.frame.setVisible(true);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    });
}

public LabelPlay() {
    initialize();
}

private void initialize() {
    frame = new JFrame();
    frame.setBounds(100, 100, 659, 518);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().setLayout(null);

    label = new JLabel("YEEEHAH!");
    label.setBounds(101, 62, 54, 21);
    frame.getContentPane().add(label);

    JButton btnAction = new JButton("Action!");
    rand = new Random();
    btnAction.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent arg0) {
            int a = rand.nextInt(90)+10;
            int b = rand.nextInt(90)+10;
            int c = rand.nextInt(640)+10;
            int d = rand.nextInt(500)+10;
            label.setBounds(a, b, c, d);                
        }
    });
    btnAction.setBounds(524, 427, 89, 23);
    frame.getContentPane().add(btnAction);

}

}

如果希望在特定时间在循环中发生这种情况,可以将其放入循环中,然后在运行代码之前在循环中使用Thread.sleep(毫秒数)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何更改JLabel的位置?

来自分类Dev

如何使JButton更改JLabel中文本的位置

来自分类Dev

如何更改JLabel颜色

来自分类Dev

我如何使JLabel文本自动更改?

来自分类Dev

如何更改JLabel和JButton的颜色

来自分类Dev

如何更改gitconfig的位置?

来自分类Dev

如何更改文字位置?

来自分类Dev

如何更改UINavigationBar的位置?

来自分类Dev

如何更改照片的位置?

来自分类Dev

如何更改 mpdf 的位置

来自分类Dev

如何更改 .container 的位置

来自分类Dev

如何更改所有私有JLabel的字体大小

来自分类Dev

如何创建可更改JLabel中文本的JCheckBox

来自分类Dev

如何通过鼠标事件更改JLabel的背景颜色?

来自分类Dev

如何在单个for循环中动态更改多个jLabel的文本?

来自分类Dev

如何基于时间对JLabel进行一次更改

来自分类Dev

如何创建可更改JLabel中文本的JCheckBox

来自分类Dev

如何更改HTML元素的位置?

来自分类Dev

如何更改uinavigationbar标题的位置?

来自分类Dev

如何更改按钮控制位置?

来自分类Dev

如何更改负号位置CSS

来自分类Dev

如何更改loadObjectList()项目位置?

来自分类Dev

如何更改mongodb的默认位置?

来自分类Dev

如何停止更改按钮的位置?

来自分类Dev

如何更改eGit配置位置?

来自分类Dev

Qtile如何更改屏幕位置

来自分类Dev

如何更改图例的位置

来自分类Dev

如何更改QTableWidget本身的位置

来自分类Dev

如何更改此块的位置?