Java JButton不需要的文本大小更改
我有JButtons,我可以在需要时设置文本,有时文本会在按钮上改变大小,或者变大或变小。我在下面添加了一些例子 如果我将鼠标滚动到按钮上,文本将返回到设置的大小。2000年和2013年是设定的规模 按钮的创建和设置如下所示:Java JButton不需要的文本大小更改,java,swing,jbutton,Java,Swing,Jbutton,我有JButtons,我可以在需要时设置文本,有时文本会在按钮上改变大小,或者变大或变小。我在下面添加了一些例子 如果我将鼠标滚动到按钮上,文本将返回到设置的大小。2000年和2013年是设定的规模 按钮的创建和设置如下所示: //create buttons Buttons.add( Btn1 = newImageButton(Picture.Button.getImageIcon(), "Btn1", Color.WHITE)); x = (int)(0.5f + (0) * getS
//create buttons
Buttons.add( Btn1 = newImageButton(Picture.Button.getImageIcon(), "Btn1", Color.WHITE));
x = (int)(0.5f + (0) * getScreenWorking().width);
y = (int)(0.5f + (yBtnStep + yBtnMargin) * getScreenWorking().height);
buildConstraintsFF(Btn1, x, y, -1);
Btn1.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
ButtonAction(evt);
}
});
Btn1.setVisible(false);
Buttons.add( Btn2 = newImageButton(Picture.Button.getImageIcon(), "Btn2", Color.WHITE));
x = (int)(0.5f + (xBtnStep) * getScreenWorking().width);
y = (int)(0.5f + (yBtnStep + yBtnMargin) * getScreenWorking().height);
buildConstraintsFF(Btn2, x, y, -1);
Btn2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
ButtonAction(evt);
}
});
Btn2.setVisible(false);
public JButton newImageButton(ImageIcon ii, String str, Color col) {
JButton btn = new JButton(ii);
Dimension dim = new Dimension(ii.getIconWidth(),
ii.getIconHeight());
btn.setPreferredSize(dim);
btn.setMaximumSize(dim);
btn.setMinimumSize(dim);
btn.setText(str);
btn.setForeground(col);
btn.setHorizontalTextPosition(SwingConstants.CENTER);
btn.setFont(new Font("GothamNarrow-Book", Font.BOLD, 24));
btn.setBorderPainted(false);
btn.setContentAreaFilled(false);
btn.setFocusPainted(false);
btn.setOpaque(false);
return(btn);
}
//Button text set from list and made visible to size of list
for(int i=0; i < List.size(); i++){
btn1 = Buttons.get(i);
setBtnText(List.get(i), i);
btn1.setVisible(true);
}
//set button text
public void setBtnText(String str, int i){
JButton btn = autosButtons.get(i);
String str2 = "<html><center><font size=6>" + str + "</font></center></html>";
btn.setText(str2);
btn.setMargin(new Insets(20,0,20,0));
btn.setVerticalAlignment(SwingConstants.CENTER);
btn.setHorizontalAlignment(SwingConstants.CENTER);
btn.repaint();
}
private JButton Btn1;
private JButton Btn2;
public ArrayList<JButton> Buttons = new ArrayList<JButton>();
private List<String> List = new ArrayList<String>();
//创建按钮
添加(Btn1=newImageButton(Picture.Button.getImageIcon(),“Btn1”,Color.WHITE));
x=(int)(0.5f+(0)*getScreenWorking().width);
y=(int)(0.5f+(yBtnStep+yBtnMargin)*getScreenWorking().height);
buildConstraintsFF(Btn1,x,y,-1);
Btn1.addActionListener(新ActionListener(){
已执行的公共无效操作(操作事件evt){
按钮操作(evt);
}
});
Btn1.setVisible(假);
添加(Btn2=newImageButton(Picture.Button.getImageIcon(),“Btn2”,Color.WHITE));
x=(int)(0.5f+(xBtnStep)*getScreenWorking().width);
y=(int)(0.5f+(yBtnStep+yBtnMargin)*getScreenWorking().height);
buildConstraintsFF(Btn2,x,y,-1);
Btn2.addActionListener(新的ActionListener(){
已执行的公共无效操作(操作事件evt){
按钮操作(evt);
}
});
Btn2.setVisible(假);
公共JButton newImageButton(ImageIcon ii,字符串str,颜色col){
JButton btn=新JButton(ii);
尺寸标注=新尺寸标注(ii.getIconWidth(),
ii.getIconHeight());
btn.setPreferredSize(尺寸);
btn.设置最大尺寸(dim);
btn.设置最小尺寸(dim);
btn.setText(str);
btn.设置前景(col);
btn.setHorizontalTextPosition(SwingConstants.CENTER);
btn.setFont(新字体(“GothamRown Book”,Font.BOLD,24));
btn.1(假);
btn.setContentAreaFilled(假);
btn.SetFocuspaint(假);
btn.setOpaque(假);
返回(btn);
}
//从列表中设置的按钮文本,并使其对列表大小可见
对于(int i=0;i
有人能给我解释一下为什么文字会像图片一样变大吗
这是文本设置问题还是Swing问题?要获得更好的帮助,请尽快发布一个适当的帖子,我们可以复制粘贴,并查看与您相同的问题。避免添加第二个字体大小,从而混淆视听。对齐设置属于该按钮。当图像似乎更多时,为什么要混合图像和文本?您在多个位置设置了不同的字体大小,因此这是可疑的。此外,如果约束和对齐数学发生任何变化,可能会压缩文本空间,并可能导致隐式字体大小重新调整。