【发布时间】:2021-08-11 08:45:25
【问题描述】:
我正在编写一个方法来创建一个 JLabel 以存储在一个包中,这样我就可以使用一个方法来创建 JLabel,而不是以后每次都重新编写它。
我现在有
public static JLabel CreateJLabel(String nameOfLabel, String nameOfFont, int fontSize, int posX, int posY, SpringLayout layout, Frame frame) {
JLabel myJLabel = new JLabel(nameOfLabel);
Font myFont = new Font(nameOfFont, Font.BOLD,fontSize);
myJLabel.setFont(myFont);
layout.putConstraint(SpringLayout.WEST,myJLabel,posX, SpringLayout.WEST, frame);
layout.putConstraint(SpringLayout.NORTH,myJLabel,posY, SpringLayout.NORTH, frame);
frame.add(myJLabel);
return myJLabel;
}
我正在查看的具体区域是
public static JLabel CreateJLabel(String nameOfFont, int fontSize) {
Font myFont = new Font(nameOfFont, Font.BOLD,fontSize);
}
我想知道在 Font() 的参数中,它需要 Font.BOLD 来指定字体的粗细,我如何在方法中编写参数以便 Font.BOLD 不是硬编码而是用户可以输入字体。风格?
我试过了
public static JLabel CreateJLabel(String nameOfFont, Font fontWeight, int fontSize) {
Font myFont = new Font(nameOfFont, fontWeight ,fontSize);
}
但这不起作用,我也尝试使用 int 类型,因为它在 IntelliJ 中突出显示为 int 数据类型
public static JLabel CreateJLabel(String nameOfLabel, String nameOfFont, int fontWeight, int fontSize) {
JLabel myJLabel = new JLabel(nameOfLabel);
Font myFont = new Font(nameOfFont, Font.fontWeight ,fontSize);
}
但这也是一个错误。
【问题讨论】:
-
如何在方法中写入参数,以便 Font.BOLD 不是硬编码但用户可以输入字体。样式?...您可以使用 2 个
JCheckBoxes(一个用于BOLD,一个用于ITALIC)。