一个照着书上打的例子,画随即线;
3个类
第1个
package gui;
import java.awt.Color;
import java.awt.Graphics;
public class MyLine
{
private int x1;
private int x2;
private int y2;
private int y1;
private Color myColor;
public MyLine(int x1,int y1,int x2,int y2,Color color)
{
this.x1=x1;
this.y1=y1;
this.x2=x2;
this.y2=y2;
myColor=color;
}
public void draw(Graphics g)
{
g.setColor(myColor);
g.drawLine(x1,y1,x2,y2);
}
}
第2个
package gui;
import java.awt.Color;
import java.awt.Graphics;
import java.util.Random;
import javax.swing.JPanel;public class DrawPanel extends JPanel
{
private Random randomNumbers = new Random();
private MyLine lines[];
public DrawPanel()
{
setBackground( Color.WHITE );
lines =new MyLine[5+randomNumbers.nextInt(5)];
for (int count = 0;count < lines.length;count++)
{
int x1 = randomNumbers.nextInt(300);
int y1 = randomNumbers.nextInt(300);
int x2 = randomNumbers.nextInt(300);
int y2 = randomNumbers.nextInt(300);
Color color = new Color(randomNumbers.nextInt(256),randomNumbers.nextInt(256),randomNumbers.nextInt(256));
lines[ count ] =new MyLine (x1,y1,x2,y2,color);
}
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
for ( MyLine line :lines)
line.draw(g);
}
}
第3个
package gui;import javax.swing.JFrame;public class TestDraw
{
public static void main(String args[])
{
DrawPanel panel = new DrawPanel();
JFrame application = new JFrame();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
application.add(panel);
application.setSize(300,300);
application.setVisible(true);
}
}编译无问题,运行时错误提示是:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
at gui.DrawPanel.<init>(DrawPanel.java:22)
at gui.TestDraw.main(TestDraw.java:9)
应该是数组越界问题,但具体是哪里,刚接触JAVA不久的我找不出来.
帮帮我好吗/
3个类
第1个
package gui;
import java.awt.Color;
import java.awt.Graphics;
public class MyLine
{
private int x1;
private int x2;
private int y2;
private int y1;
private Color myColor;
public MyLine(int x1,int y1,int x2,int y2,Color color)
{
this.x1=x1;
this.y1=y1;
this.x2=x2;
this.y2=y2;
myColor=color;
}
public void draw(Graphics g)
{
g.setColor(myColor);
g.drawLine(x1,y1,x2,y2);
}
}
第2个
package gui;
import java.awt.Color;
import java.awt.Graphics;
import java.util.Random;
import javax.swing.JPanel;public class DrawPanel extends JPanel
{
private Random randomNumbers = new Random();
private MyLine lines[];
public DrawPanel()
{
setBackground( Color.WHITE );
lines =new MyLine[5+randomNumbers.nextInt(5)];
for (int count = 0;count < lines.length;count++)
{
int x1 = randomNumbers.nextInt(300);
int y1 = randomNumbers.nextInt(300);
int x2 = randomNumbers.nextInt(300);
int y2 = randomNumbers.nextInt(300);
Color color = new Color(randomNumbers.nextInt(256),randomNumbers.nextInt(256),randomNumbers.nextInt(256));
lines[ count ] =new MyLine (x1,y1,x2,y2,color);
}
}
public void paintComponent(Graphics g)
{
super.paintComponent(g);
for ( MyLine line :lines)
line.draw(g);
}
}
第3个
package gui;import javax.swing.JFrame;public class TestDraw
{
public static void main(String args[])
{
DrawPanel panel = new DrawPanel();
JFrame application = new JFrame();
application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
application.add(panel);
application.setSize(300,300);
application.setVisible(true);
}
}编译无问题,运行时错误提示是:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 7
at gui.DrawPanel.<init>(DrawPanel.java:22)
at gui.TestDraw.main(TestDraw.java:9)
应该是数组越界问题,但具体是哪里,刚接触JAVA不久的我找不出来.
帮帮我好吗/
解决方案 »
- 请问Swing里面有控件可以选择文件夹的吗?不是文件夹下的文件。
- Java String问题!请高手指点!
- 子类调用父类的方法一定会有super吗?
- json的运用
- 高手来 为什么这句也可以运行?
- integer.parseInt的疑惑
- 有import MyWindowListener; 这样的写法吗?各位大哥帮帮小女子呀,先谢啦!!!!
- sql连接串中怎样加入 ?useUnicode=true&characterEncoding=gb2312
- java如何生成和解析xml文件?
- ****请教关于oracle中date型字段的显示问题。谢谢!!!**
- 如何用SESSION函数实现将数据插入不同的数据库
- 请教高手,java怎样才能生成csv文件?用到哪个类呢?
代码没问题!