gpt4 book ai didi

java - Jframe 上的位置

转载 作者:行者123 更新时间:2023-12-01 11:10:19 25 4
gpt4 key购买 nike

我正在开发 game但 JLabels 的位置存在一些问题。我有这个:

http://puu.sh/k47m6/89136f7aeb.png

作为我的董事会。我正在尝试做两件事:

  1. 将“Ledu”放置在蓝色板的顶部
  2. 在其下方插入一个随机生成的数字,以便每次按下图像时它都会改变!

这是我的代码:

start.addActionListener(new ActionListener() { 
public void actionPerformed(ActionEvent e) {
bp.removeAll();
bp.revalidate();
bp.repaint();
BufferedImage mFrame2= null;

try {
mFrame2 = ImageIO.read(new File("B2.png"));
}
catch (IOException e1) {
e1.printStackTrace();
}

bp = new BackgroundPanel(mFrame2);
bp.setLayout(new GridBagLayout());
GridBagConstraints c = new GridBagConstraints();
JLabel hi1 = new JLabel ("Ledu");
Font fs = hi1.getFont();
hi1.setFont(fs.deriveFont(30f));
c.ipady = 0; //reset to default
c.ipadx = 0;
c.anchor = GridBagConstraints.FIRST_LINE_END;
c.insets = new Insets(10,0,0,0); //top padding
bp.add(hi1, c);
mainf.setContentPane(bp);
};
});

mainf.pack();
mainf.setVisible(true);

我将如何将标签放置在蓝色框的顶部,以及我需要做什么才能生成类似于掷骰子的随机数?

最佳答案

1.Locate Ludo on the top of the blue-ish board

嗯,我不知道这意味着什么。是否意味着位于蓝色区域的绝对中心。还是意味着上/左、上/中、上/右?

更具描述性,这样我们就不必猜测。

现在在我看来标签位于整个图像的中心。这是 GridBagLayout 的默认行为。如果您不希望图像位于中心,那么您需要使用weightx/weighty 约束。

阅读 Swing 教程中关于 How to Use GridBagLayout 的部分有关约束如何工作的解释。

但是,我认为这不会解决您的问题,因为您无法相对于较大图像的“蓝色”区域定位组件。我建议您需要两张图像,一张用于游戏板,一张用于蓝色区域。然后就可以开始在蓝色区域上相对定位组件了。

2.Insert an randomly generated number under it so that it changes each time I press an image!

按照上面的建议分割图像后,您可以在第二个图像上使用垂直 BoxLayout。然后您可以显示两个标签,一个带有文本,另一个带有数字。

关于java - Jframe 上的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32457630/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com