2013-04-02 4 views
-1

Я новичок в java. Я работаю над назначением, в котором я читаю команды из файла и рисую фигуры на jpanel. файл какпользовательские функции краски в java

FRAME 200 100  // open a frame, note: parser must ignore any comments 
    COLOR 255 0 0 // set color to red 
    RECTANGLE 20 30 40 20 // draw a red rectangle 
    COLOR 128 128 128 // set color to gray 
    CIRCLE 100 50 25 // draw a gray circle 
    FRAME 100 100 // open a second frame 
    COLOR 0 0 255 // set color to blue 
    ELLIPSE 50 50 30 20 // draw a blue ellipse 
    COLOR 0 255 0 // set color to green 
    LINE 10 20 90 80 // draw a green line 

я написал следующий код.

JFrame frame = new JFrame("JFrame Source Demo"); 
frame.setTitle("Drawing Graphics in Frames"); 
frame.setBounds(100,50,500,300); 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
frame.setVisible(true); 
/////////////////// 
    File file = new File("Paint_instruction.txt"); 
    // Get data from this file using a file reader. 
    FileReader fr = new FileReader(file); 
    // To store the contents read via File Reader 
    BufferedReader br = new BufferedReader(fr); 
    //writer to write in file 

    while((data = br.readLine()) != null) 
    { 
     /*String[] tokens = data.split("\\s{1,}"); 
      for(int i=0;i<tokens.length;i++) 
      {System.out.println(tokens[i]);}*/ 

     String []tokens = data.split("\\s{1,}"); 

      if(tokens[0].equals("FRAME")) 
      {JFrame frame2 = new JFrame("JFrame Source Demo"); 
      frame2.setBounds(0, 0, 40, 40); 
      frame2.setVisible(true); 


      } 
      else if(tokens[0].equals("RECTANGLE")) 
      { 
      //draw circle 
      } 
      else if(tokens[0].equals("CIRCLE")) 
      { 
       //draw circle 
      } 
      else if(tokens[0].equals("LINE")) 
      { 
       //draw Line 
      } 
      else if(tokens[0].equals("ELLIPSE")) 
      { 
       //draw ELLIPSE 
      } 

Я не знаю, как использовать функцию краски для рисования этих фигур. Я попытался передать массив для рисования функции. но это не сработало. Я изучил его, но не нашел подходящей помощи

+0

Вы должны попытаться сделать свою задачу одной. Таким образом, вам будет намного лучше. – skuntsel

+0

Я бы предположил, что вы не должны читать из файла в рамках любого метода рисования, так как вы хотите, чтобы они были такими же быстрыми, как вы можете это сделать. – MadProgrammer

ответ

4

и рисуя фигуры на jpanel.

Итак, где же ваш JPanel?

Я вытаращил его, но не нашли необходимую помощь

я считаю, что трудно поверить. Ссылки на учебник Custom Painting находятся на этом и других форумах.

Труднее узнать, как рисовать при чтении команд из файла, поэтому я предлагаю вам сначала изучить основы рисования, прежде чем заниматься живописью из файла команды.

+1

Возможно, что OP означает, что назначение еще не было опубликовано где-то в сети. – skuntsel

+0

@skuntsel, хороший момент :-) – camickr

1

Вы должны переопределить метод paintComponentJPanel и в рамках этого метода нарисовать все эти фигуры с использованием аргумента java.awt.Graphics, переданного в методе paintComponent. И добавьте, что JPanel в JFrame. Посмотрите на official tutorial for paint mechanism в java

Смежные вопросы