gpt4 book ai didi

java - 如何更改所有私有(private) JLabel 的字体大小

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:47:03 27 4
gpt4 key购买 nike

我看过类似的问题比如this ,但在我的例子中,我有 25 个以上的私有(private) JLabel,我在声明它时为其赋值。我在构造函数中使用 GridBagLayout 将这些 JLabel 添加到 JPanel。如果我按照链接中给出的答案使用某些内容,它只会更改构造函数中添加的 JLabel。

所以在我看来,如果我想更改我的私有(private) JLabel 的字体大小,我将不得不单独为它们定义字体大小,或者更改我的构造函数中的默认值,然后然后 添加我的 JLabel。但是,我确信必须有另一种更简单的方法,但我只是没有经验或理解来弄清楚它,或者根据对其他类似问题的答案进行适当的调整。

我不认为这真的需要我展示我的代码,但如果有帮助我会这样做。

public class LaborRecordPanel implements
Printable, ActionListener {

private Color shade = new Color(201,201,201);

private ImageIcon logoIcon = new ImageIcon("Images/fici_logo1.jpg");
private JLabel logoLabel = new JLabel(logoIcon);

private JLabel authorizedBy = new JLabel("AUTHORIZED BY:");
private JLabel toCertify = new JLabel("THIS IS TO CERTIFY THAT THE ABOVE LABOR HAS BEEN PERFORMED.");

private JLabel laborRecordNO = new JLabel("NO.");
private JLabel nameOfJob = new JLabel("NAME OF JOB:");
private JLabel customerPO = new JLabel("CUSTOMER PO #:");
private JLabel contractNO = new JLabel("CONTRACT NO.");
private JLabel weekEnding = new JLabel("WEEK ENDING");
private JComboBox laborRateDescription = new JComboBox();
//...

JPanel rp = new JPanel();
JScrollPane scrollPane = new JScrollPane(rp);
LaborRecordPanel(){
//Font oldLabelFont = UIManager.getFont("Label.font");
//UIManager.put("Label.font",oldLabelFont.deriveFont(Font.PLAIN));
//UIManager.put("Label.font", UIManager.getFont("Label.font").deriveFont(40));
//SwingUtilities.updateComponentTreeUI(rp);
rp.setPreferredSize(new Dimension(1295,1830 ));
scrollPane.getVerticalScrollBar().setUnitIncrement(16); //increase the scroll speed

GridBagLayout gridbag = new GridBagLayout();
rp.setBackground(Color.WHITE);
rp.setBorder(BorderFactory.createLineBorder(Color.BLACK, 1));
GridBagConstraints gbc = new GridBagConstraints();
rp.setLayout(gridbag);
//gbc.insets = new Insets(5, 5, 5, 5);

//row 0////////////////////////////////////////////////////////////
gbc.fill = GridBagConstraints.BOTH;
gbc.gridx = 10;
gbc.gridy = 0;
gbc.weightx = 1;
gbc.weighty = 1;
gbc.gridheight = 1;
gbc.gridwidth = 1;
laborRecordNO.setHorizontalAlignment(JLabel.CENTER);
laborRecordNO.setFont(new Font("Dialog", Font.PLAIN, 18));
gridbag.setConstraints(laborRecordNO, gbc);
rp.add(laborRecordNO, gbc);

//row 1////////////////////////////////////////////////////////////
gbc.gridx = 0;
gbc.gridy = 1;
gbc.gridwidth = 13;
gridbag.setConstraints(logoLabel, gbc);
rp.add(logoLabel, gbc);

//row 2////////////////////////////////////////////////////////////
gbc.gridx = 0;
gbc.gridy = 2;
gbc.gridheight = 1;
gbc.gridwidth = 1;
gridbag.setConstraints(nameOfJob, gbc);
rp.add(nameOfJob, gbc);

gbc.gridx = 6;
gbc.gridy = 2;
gbc.gridheight = 1;
gbc.gridwidth = 3;
gridbag.setConstraints(contractNO, gbc);
rp.add(contractNO, gbc);
//... more setting constraints and adding
}
}

最佳答案

您可以更改标签的 UIManager 默认值。在现有默认值上使用 deriveFont() 可能更美观。应在使用 EventQueue.invokeLater() 构建 GUI 之前进行更改。

Font f = (Font) UIManager.get("Label.font");
UIManager.put("Label.font", f.deriveFont(36f));
EventQueue.invokeLater(new Runnable() {…}

关于java - 如何更改所有私有(private) JLabel 的字体大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21733765/

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