java中的自定义绘制函数
我是java的新手。我正在做一项作业,从文件中读取命令并在jpanel上绘制形状。 该文件类似于java中的自定义绘制函数,java,swing,jframe,jpanel,java-2d,Java,Swing,Jframe,Jpanel,Java 2d,我是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 t
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
}
我不知道如何使用绘画功能来绘制这些形状。我已尝试将数组传递给paint函数。但它没有起作用。
我看了看,但没有找到任何合适的帮助
并在jpanel上绘制形状
那么你的JPanel在哪里
我看了看,但没有找到任何合适的帮助
我觉得很难相信。本教程的链接遍布本论坛和其他论坛
从文件中读取命令时,学习如何进行绘制会更加困难,因此,我建议您在从命令文件处理绘制之前,首先学习绘制的基础知识。您应该覆盖JPanel的paintComponent方法,并在该方法中使用paintComponent方法中传递的java.awt.Graphics参数绘制所有这些形状。并将该JPanel添加到JFrame。查看java中的任务,您应该尝试自己完成任务。这样你会更好。我建议你不要在任何绘制方法中读取文件,因为你希望这些文件尽可能快,可能OP的意思是作业还没有发布到网上的某个地方。