2016-12-15 64 views
0

我想添加一行到我的程序中,但它運行但什麼都不顯示,我該如何解決這個問題?如何在Java GUI中添加一行?

我看過教程,我已經拿出下面的代碼,但它不顯示任何東西。我該如何解決?

public void paint(Graphics g) 
    { 
     g.drawLine(0, 0, 100, 100); 
    } 

這裏是我的全部程序:

import java.awt.EventQueue; 
import java.awt.Graphics; 
import javax.swing.JFrame; 

public class GuiLine { 

private JFrame frame; 

public static void main(String[] args) { 
    EventQueue.invokeLater(new Runnable() { 
     public void run() { 
      try { 
       GuiLine window = new GuiLine(); 
       window.frame.setVisible(true); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 
    }); 
} 

public GuiLine() { 
    initialize(); 

} 
public void paint(Graphics g) 
    { 
     g.drawLine(0, 0, 100, 100); 
    } 

private void initialize() { 
    frame = new JFrame(); 
    frame.setBounds(100, 100, 450, 300); 
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
} 
} 
+1

繪畫應該在JComponent子類的paintComponent()方法中完成。創建一個擴展JPanel並覆蓋paintComponent()的自定義組件,然後添加該框架的一個實例。現在你有一個隨機的paint()方法,永遠不會被任何東西調用。 https://docs.oracle.com/javase/tutorial/uiswing/painting/problems.html –

回答

1

GuiLine類有方法paint(Graphics g),但它永遠不會被調用,因爲該類不是一個組件(也不是添加到幀,所以它不可見)。

您可以使類延伸JPanel,並在您的初始化方法調用frame.add(this);。然後你可以繼續閱讀更多的教程。