2017-07-31 105 views
1

我正在製作一款遊戲的戰利品記錄器,當我在啓動時嘗試繪製主菜單標題時,沒有任何反應。當我打電話完全相同的代碼與一個JButton,它工作正常JLabel沒有正確繪製

代碼:

public Mainmenu(){ 

    initComponents(); 

    drawmenu(); 
} 
private void drawmenu(){ 

    Graphics g = jLabel1.getGraphics(); 

    g.setFont(g.getFont().deriveFont(30f)); 

    g.drawString("Loot Logger v.1.0", 215, 80); 
} 

但是,當我這樣調用它的工作原理:

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {           

    Graphics g = jLabel1.getGraphics(); 
    g.setFont(g.getFont().deriveFont(30f)); 
    g.drawString("Loot Logger v.1.0", 215, 80); 

}   

回答

1
Graphics g = jLabel1.getGraphics(); 
g.setFont(g.getFont().deriveFont(30f)); 
g.drawString("Loot Logger v.1.0", 215, 80); 

不要使用getGraphics(...)繪製標籤(或任何Swing組件)。

所有你需要做的是將標籤添加到該幀,然後更改標籤的文本:

jLabel1.setFont(...); 
jLabel1.setText(...); 

閱讀從How to Use Labels Swing的教程部分獲取更多信息和工作的例子讓你開始。