我正在嘗試創建一個JFrame
,它顯示從4到24的每個偶數字號的字符串。爲此,我嘗試執行一個for循環,創建一個drawString
,它使用每次增加+2字體大小的Font
。試圖通過獲得前一個的getHeight()
並將其添加到可變值y
中來獲得下一個drawString
。但是程序運行時JFrame
爲空。 我哪裏錯了?沒有出現在JFrame中的循環drawString
import javax.swing.*;
import java.awt.*;
public class JFontSizeDemo extends JFrame {
int x = 10;
int y = 40;
int heightOfFont;
public void paint(Graphics g) {
super.paint(g);
for(int size = 4; size <= 24; size += 2) {
g.setFont(new Font("Arial", Font.BOLD, size));
g.drawString("Name", x, y);
heightOfFont = g.getFontMetrics().getHeight();
y += heightOfFont;
}
}
public static void main(String[] args) {
JFontSizeDemo frame = new JFontSizeDemo();
frame.setSize(300, 300);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
它適用於我。您使用的是什麼?規格? –
這個[** example **](http://stackoverflow.com/a/10352884/1057230)或許可以解釋一些關於主題的關注。爲此,您需要[** paintImmediately(...)**](http://docs.oracle.com/javase/7/docs/api/javax/swing/JComponent.html#paintImmediately(int,%20int, %20int,%20int)) –
@GagandeepBali你有沒有試過這個代碼?它運行! –