2017-10-03 30 views
1

割り当てには、このpublic void draw(Graphics2D g)メソッドを使用して三角形オブジェクトを作成して、キャンバスに三角形を描画する必要があります。JFrameで描画文字列が表示されない

私は自分のコードのより深い部分に入る前に簡単なテキストを画面に印刷できるかどうかを試してみました。私はpublic void paintComponent(Graphics g)メソッドの使用に慣れており、そのメソッドを使用すると機能します。しかし、public void draw(Graphics2D g)メソッドを使用すると空白になります。

私は間違っていますか?

import javax.swing.JFrame; 

public class Main { 
    public static void main(String[] args){ 
     Window window = new Window(); 
     window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     window.setSize(700,500); 
     window.setLocation(400,100); 
     window.setTitle("Draw Pad"); 
     window.initialize(); 
     window.setVisible(true); 
    } 
} 

import java.awt.Container; 
import javax.swing.JFrame; 
public class Window extends JFrame { 
    public void initialize(){ 
    DrawPanel panel = new DrawPanel(); 
    Container contentPane = getContentPane(); 
    contentPane.add("Center", panel); 
    } 
} 

import java.awt.Graphics; 
import java.awt.Graphics2D; 
import javax.swing.JPanel; 
public class DrawPanel extends JPanel { 
    //Doesn't work using this 
    public void draw(Graphics2D g) 
    { 
     g.drawString(("Hello"), 100, 100); 
    } 
    //Works using this 
    @Override 
    public void paintComponent(Graphics g) { 
    super.paintComponent(g); 
    Graphics2D g2 = (Graphics2D) g; 
    g2.drawString(("Hello"),100,100); 
    } 
} 
+0

コードはコンパイルされません – MadProgrammer

+0

@MadProgrammer空のウィンドウが表示されるだけでなく、インポートが含まれていないため、スペースが少なくて済むようになりました。あなたがそれをコピーしたばかりの場合。 –

+0

私はちょうどコンパイラエラーの束を手に入れます - どのように - 自分自身にこの質問をしてください - あなたの 'draw'メソッドはどう呼ばれますか? – MadProgrammer

答えて

1

コード例の問題を踏まえて、コンパイルしません。あなたはより良い絵は実際に動作し、あなたがそれで

を働かせることができるか、私はそのをお勧めしますどのように理解することが

を見て持っていることによって開始する必要がありますテキストをレンダリングする方法をよりよく理解するためにWorking with Text APIsをご覧ください。Graphics2D

0

なぜ公的に無効なものがあると思われますかdraw(Graphics2D g)は何もしませんか?
私はそれがまったく呼び出されません。
とにかくスイングペイントを呼び出すとpaintComponent()が呼び出され、必要な機能を追加するためにオーバーライドする必要があります。

関連する問題