2016-12-15 1 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);を呼び出すことができます。その後、さらにチュートリアルを読むことができます。

関連する問題