gpt4 book ai didi

java - JButton 文本不在图标中并且 setBounds 不起作用

转载 作者:行者123 更新时间:2023-11-29 03:37:35 24 4
gpt4 key购买 nike

我有一个像这样的面板:

class A extends JPanel{
private JButton button;

A(int width, int height){
setSize(width, height);
button = new JButton("text");
button.setIcon(IconLoadedHere);
button.setBounds(50, 50, getWidth()/5, getHeight()/5);
button.setBorder(BorderFactory.createEmptyBorder());
add(button);
}
}

JFrame是这样的:

public class window extends JFrame{
private JPanel panel;

public window(){
panel = new JPanel();
setTitle("test");
setSize(1280, 720);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public void loadA(){
remove(panel);
panel = new A(getWidth(), getHeight());
add(panel);
validate();
}
}

按钮有 2 个问题:

  1. 我想在图片上显示文字,这可能吗(最好在图片中间)?目前它出现在它的左边。 (已解决)

  2. 由于某些奇怪的原因 setBounds 不工作,按钮总是出现在顶部中心(似乎只能在没有布局的情况下使用,任何替代设置按钮的位置和大小,但是我喜欢?)

还有1个问题:如果我想调整窗口大小,我该怎么做才能使按钮和文本相应地调整大小? (目前只找到一个一个改的办法,有没有其他办法?)

最佳答案

要控制文本在按钮中的显示方式,您应该使用:

button.setHorizontalTextPosition(JButton.CENTER);
button.setVerticalTextPosition(JButton.CENTER);

这会将文本放在按钮的中央。

默认情况下,水平文本位置设置为 TRAILING,这就是它位于图标一侧的原因。

对于问题的布局部分,您真的应该阅读 relevant part of the official tutorial . TLDR:使用布局管理器,它们会为您调整大小和定位。

关于java - JButton 文本不在图标中并且 setBounds 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14692751/

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