2017-07-31 83 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的教程部分获取更多信息和工作的例子让你开始。