2016-05-02 18 views
0

Java JFrameとFPanelを使って描画しようとしているプログラムに問題があります。simular fashio(Shapes not drawing in Java)というラベルの付いた他の質問も見ましたが、質問私のプログラムに何が間違っているかを確認することができませんでした。だから、これはある意味コピーではあるが、私は何が間違っているかを指摘する助けを求めている。私は自分の媒体でネットビーンを使っています。Java、図形が描画されない

import java.awt.Graphics; 
import java.awt.Color; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import java.awt.Font; 


public class BullsEye extends JPanel{ 

@Override 
    public void printComponent(Graphics g) 
    { 
    super.paintComponent(g); 
    //for(int x =0; x>10;x++) 
    //{ 
    int x=10; 

     int y =(100-10*(x-1)); 
     //if((x%2)==0) 
     //{ 
      g.setColor(Color.RED);//setting color 
      g.drawRect(100, 10, 10, 15);//drawing 
      g.drawOval(0, 0, 100, 100);//drawing 
     //} 
     // else 
     //{ 
      g.setColor(Color.GREEN);//setting color 
      g.fillOval(10, 10, 50, 50);//drawing 
     //} 
    //} 


    } 
    public static void main(String[] args) 
    { 
     BullsEye b = new BullsEye();//creating b varaible for drawings 
    JFrame jf = new JFrame();//frame varaible for the frame 
    jf.setTitle("BullsEye");//setting title 
    jf.setSize(500,400);//setting size 

    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//opertion close 
    jf.add(b);//adding to the frame 

    jf.setVisible(true);//setting it to visible 
    } 

} 

答えて

0

間違った方法を上書きしています。 printComponentの代わりにpaintComponentをオーバーライドするのは、印刷のためだけです。詳細については、チュートリアルをご覧ください。https://docs.oracle.com/javase/tutorial/uiswing/painting/

import java.awt.Graphics; 
import java.awt.Color; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import java.awt.Font; 


public class BullsEye extends JPanel{ 

@Override 
    public void paintComponent(Graphics g) 
    { 
    super.paintComponent(g); 
    //for(int x =0; x>10;x++) 
    //{ 
    int x=10; 

     int y =(100-10*(x-1)); 
     //if((x%2)==0) 
     //{ 
      g.setColor(Color.RED);//setting color 
      g.drawRect(100, 10, 10, 15);//drawing 
      g.drawOval(0, 0, 100, 100);//drawing 
     //} 
     // else 
     //{ 
      g.setColor(Color.GREEN);//setting color 
      g.fillOval(10, 10, 50, 50);//drawing 
     //} 
    //} 


    } 
    public static void main(String[] args) 
    { 
     BullsEye b = new BullsEye();//creating b varaible for drawings 
    JFrame jf = new JFrame();//frame varaible for the frame 
    jf.setTitle("BullsEye");//setting title 
    jf.setSize(500,400);//setting size 

    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//opertion close 
    jf.add(b);//adding to the frame 

    jf.setVisible(true);//setting it to visible 
    } 

} 
+0

ありがとうございました。 –