這是訪問一個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));
'我知道如何改變一個JLabel的字體大小正常way' - 然後用正常的方式。它的正常是有原因的。沒有理由使用其他方法。如果所有標籤都位於同一面板上,則只有該解決方案纔有效。很少會創建一個具有單個面板和單個佈局管理器的GUI。保持解決方案簡單。 – camickr
我採取了正常的方式,我只是看到是否有一個更簡單的方法來做到這一點。我是GUI的新手,最近纔剛剛開始。感謝您的建議 – Aaronward