如何更改" panel.add中的JLabel的字体大小(新的JLabel(""));"

时间:2016-03-30 16:51:22

标签: java swing user-interface jlabel

我知道如何以正常方式更改JLabel的字体大小

-- Direct insert
INSERT INTO Table1 (Column1) VALUES ('John’s')

但是,当我以简单的方式将JLabel添加到面板时,我想看看是否有办法做到这一点。喜欢这个..

var cell = tableView.dequeueReusableCellWithIdentifier("CELL", forIndexPath: indexPath)

如果JLabel没有名字,我将如何改变后者的字体大小?

我尝试在JPanel上设置字体,但它不起作用。

exampleLabel.setFont(new Font("", Font.PLAIN, 20));

对此有任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

这是一种访问JLabel的奇怪方式,但这可能有用......

Component[] components = examplePanel.getComponents();

for (Component singleComponent : components) {
   if (singleComponent instanceof JLabel) {
       JLabel label = (JLabel) singleComponent;

       if ("this is an example".equals(label.getText()) {
              label.setFont(new Font("", Font.PLAIN, 20));
       }
   }
}

另一种方法是为要更改的JLabels创建一个新类。

public class JMyFontLabel extends JLabel {
  boolean applyFontChange = false;

  public JMyFontLabel(String text, boolean applyFontChange) {
         super(text);
         this.applyFontChange = applyFontChange;
  }

  // get / set methods for applyFontChange.
} 

// Method to apply font
public void setMyFont(JPanel examplePanel, Font myFont) {
   Component[] components = examplePanel.getComponents();

   for (Component singleComponent : components) {

   if (singleComponent instanceof JMyFontLabel) {
       JMyFontLabel label = (JMyFontLabel) singleComponent;

       if (label.isApplyFontChange()) {
          label.setFont(myFont);
       }
   }
}

在标签创建时,设置applyFontChange

   examplePanel.add(new JMyFontLabel("Name", true));