-1

我是java的新手。我正在做一个任务,我正在从文件中读取命令并在 jpanel 上绘制形状。文件就像

 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
           }

我不知道如何使用绘画功能来绘制这些形状。我试图将数组传递给绘画函数。但它没有用。我已经护目镜,但没有找到任何适当的帮助

4

2 回答 2

4

并在 jpanel 上绘制形状。

那么你的 JPanel 在哪里呢?

我已经护目镜,但没有找到任何适当的帮助

我觉得很难相信。在这个论坛和其他论坛上都可以找到自定义绘画教程的链接。

从文件中读取命令时,学习如何进行绘画比较困难,因此我建议您在从命令文件中处理绘画之前先学习绘画的基础知识。

于 2013-04-02T19:45:49.823 回答
1

您应该覆盖paintComponent方法,并在该方法内使用传入方法的参数JPanel绘制所有这些形状。并将其添加到. 看官方的java绘图机制教程java.awt.GraphicspaintComponentJPanelJFrame

于 2013-04-02T19:46:22.547 回答