2013-04-02 69 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

你應該儘量讓你自己你的任務看official tutorial for paint mechanism。這樣你會好很多。 – skuntsel

+0

我建議,你不應該從文件中讀取,而任何paint方法中,只要你想,這些是一樣快,你可以把它 – MadProgrammer

回答

4

並在jpanel上繪製形狀。

那麼你的JPanel在哪裏?

我已經瞪大眼睛,但沒有發現任何適當的幫助

我覺得很難相信。在這個論壇和其他論壇中都可以找到Custom Painting教程的鏈接。

這是很難學會如何閱讀來自文件的命令時做畫,所以我建議你先學會做繪畫的基礎知識,你從一個命令文件處理塗裝前。

+1

大概是什麼意思OP是分配尚未發佈在某處網絡上。 – skuntsel

+0

@skuntsel,好點:-) – camickr

1

您應該重寫paintComponent方法JPanel並在該方法內使用java.awt.Graphics參數傳遞的所有這些形狀繪製所有這些形狀paintComponent方法。並將JPanel添加到JFrame。在Java中