JButton显示问题 GUIJbutton 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 public Car() { System.out.println("***"); path = new GeneralPath(); path.moveTo(50, 50); path.lineTo(200, 200); float[] dash = new float[] { 5, 5 }; for (int i = 0; i < 6; i++) { bs[i] = new BasicStroke(6.0f, BasicStroke.CAP_BUTT, BasicStroke.JOIN_MITER, 10.0f, dash, i); } this.OpenFile=new JButton("Open File"); this.lblTime = new JLabel("Start"); this.lblTime.setFont(new Font("Monospaced", Font.BOLD, 30)); this.lblTime.setHorizontalAlignment(SwingConstants.CENTER); this.lblTime.addMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent e)//鼠标点击事件 { begin = true; lblTime.setText(timeStr(Start)); } }); add(lblTime); add(OpenFile); //setLayout(new BorderLayout()); //add(lblTime, BorderLayout.NORTH); this.setLayout(null); lblTime.setBounds(800,20,100,30); OpenFile.setBounds(600,20,150,30); timer.start(); }但是JLabel lbltime就没有这个情况。。 你是不是重写了paint等会影响窗体绘制的方法?虚线的问题你不是自己定义了那几个BasicStroke,不就是那样的虚线吗,你应该修改了窗体线段的绘制方法吧 嗯,是重写了paint。。那是不是就不能同时画虚线啊。。 刚才把画虚线的暂时屏蔽掉了,已经解决了第二个问题!那重写paint的问题应该怎么解决呢?? 刚才把画虚线的暂时屏蔽掉了,已经解决了第二个问题!那重写paint的问题应该怎么解决呢??你把paint部分的代码发出来看看 刚才把画虚线的暂时屏蔽掉了,已经解决了第二个问题!那重写paint的问题应该怎么解决呢??你把paint部分的代码发出来看看public void paintComponent(Graphics g) { //System.out.println("senderX:"+senderX); //System.out.println("receiverX:"+receiverX); Graphics2D g2 = (Graphics2D) g; if (!begin) return;//鼠标点击之后begin=true super.paintComponent(g); g.setColor(Color.BLACK);//画边框 //g2.drawLine(300, 0, 300, 1000); g2.drawRect(505, 105, 600, 550); if (Start >= MAXTIME) { lblTime.setText("END!!"); } Start += 1; lblTime.setText(timeStr(Start)); Image icar = getToolkit().getImage("blude_car2.gif");//读取图片 Image Sroad=getToolkit().getImage("road2.PNG");//读取图片 Image Hroad=getToolkit().getImage("road1.PNG");//读取图片 //BufferedImage bufferedImage=(BufferedImage) getToolkit().getImage("blude_car2.gif"); //System.out.println("sy:"+sy); //System.out.println("nsy:"+nsy); for (int i = 0; i < Open.carnum; i++) //小车运动 { if (getSx()[i] < getEx()[i])//小车横向移动 { // System.out.println("************"); getSx()[i] += ((double)getdelay1()[i] / 1000);//速度除以1000 //System.out.println(getdelay1()[i] / 10); // Senderx[i] = getSx()[i]; } if (getSy()[i] < getEy()[i]) //小车纵向移动 { getSy()[i] += ((double)getdelay1()[i] / 1000); //System.out.println((double)getdelay1()[i] / 1000); //System.out.println(getSy()[i] ); } if (nsx[i]< nex[i])//小车横向移动 { g.drawImage(Hroad, 0, (int)ney[i],50, 1000, null); } if (nsy[i] < ney[i]) //小车纵向移动 { g.drawImage(Sroad, (int)nex[i],0,50, 1000, null); } File f = new File("blude_car2.gif"); try //小车图片移动,坐标的数据为浮点型 { BufferedImage image = ImageIO.read(f); g2.drawRenderedImage(image, AffineTransform.getTranslateInstance((double)getSx()[i], (double)getSy()[i])); //g2.drawRenderedImage(image, AffineTransform.getTranslateInstance(10.2, 10.8)); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } //g2.setColor(Color.YELLOW); // g.drawImage(icar, getSx()[i], getSy()[i], 40, 30, null); // g.drawImage(map, 350, 5, 100, 100, null); //Rectangle2D rect = new Rectangle2D.Double(getSx()[i], getSy()[i], 40, 30); //g2.draw(rect); //Image2D im=new Image2D(1,1,2,2); //g2.setStroke(bs[(index++) % 6]);//设置画刷 //AffineTransform transform = AffineTransform.getTranslateInstance(100,200); //先获得偏移 //transform.scale(0.5, 0.5); // 在此基础上,长宽均缩小至50% //g2.drawRenderedImage((RenderedImage) icar, transform); //g2.drawRenderedImage(buffer1, AffineTransform.getTranslateInstance(100.0, 200.0)); } g.setColor(Color.RED); //System.out.println(Open.senderID+" "+Open.receiverID); if(isStart) { //x=senderX; //System.out.println("senderx:"+senderX); //System.out.println("receiverx:"+receiverX); g.setColor(Color.BLUE); //g.fillRect(x, y, 15,15); //Rectangle2D.Float rect=new Rectangle2D.Float(x,y,10F,10F); //g2.draw(rect); //g.fillRect(x, y, 10,10); //System.out.println(sending); for(int i=0;i<Open.sno;i++)//发送的包的信息 { senderX=(int)sx[(int)Double.parseDouble(Open.sender[i][2])]; senderY=(int)sy[(int)Double.parseDouble(Open.sender[i][2])]; senderID=(int)Double.parseDouble(Open.sender[i][2]); //g.fillRect(x, y, 10,10); //x=senderX; //System.out.println(senderX+" "+Open.sender[i][2]+" "+senderY+"--------"+x+" "+y); //System.out.println(Open.sender[i][6]); if(Open.receiver2[i][0].equals("r")) { //System.out.println(i); //System.out.println(receiverX+" "+Open.receiver2[i][2]+" "+receiverY+"--------"+x+" "+y); receiverID=(int)Double.parseDouble(Open.receiver2[i][2]); receiverX = (int)sx[(int)Double.parseDouble(Open.receiver2[i][2])]; receiverY = (int)sy[(int)Double.parseDouble(Open.receiver2[i][2])] ; if((Double.parseDouble(timeStr(Start))>=Open.STIME[i])&&(Double.parseDouble(timeStr(Start))<=Open.RDTIME[i])) { System.out.println(Open.receiver2[i][6]); g.setColor(Color.BLUE); g.fillRect(x, y, 15,15); //g.drawLine(senderX+10, senderY+10, receiverX+10, receiverY+10); //Drawstring(g,senderX,senderY,receiverX,receiverY,Open.sender[i][5]); // g2.drawString(Open.sender[i][5],(senderX+(senderX+receiverX)/2)/2,(senderY+(senderY+receiverY)/2)/2);// g2.drawString(Open.sender[i][5],((senderX+receiverX)/2+receiverX)/2,(receiverY+(senderY+receiverY)/2)/2); g.setColor(Color.RED); g.drawString(Open.sender[i][5],x,y-5); g.drawString(Open.sender[i][6],x,y+25); g.setColor(Color.YELLOW); g2.drawString("S",senderX+12,senderY-5); g2.drawString("R",receiverX+12,receiverY+55); } } // if((Double.parseDouble(timeStr(Start))==Open.STIME[i]))// {// packetID.add((int)Double.parseDouble(Open.sender[i][5]));// }// if((Double.parseDouble(timeStr(Start))==Open.RDTIME[i]))// {// packetID.remove((int)Double.parseDouble(Open.sender[i][5]));// } if(Open.receiver2[i][0].equals("D")) { receiverID=(int)Double.parseDouble(Open.sender[i][2]); receiverX=(int)sx[(int)Double.parseDouble(Open.sender[i][2])]; receiverY=(int)sy[(int)Double.parseDouble(Open.sender[i][2])]; //continue; } //System.out.println(i+" :"+senderID+" "+receiverID+" "+Open.receiver2[i][0]); if(receiverX>=senderX) { x +=80; if((x<=senderX+(receiverX-senderX)/5)&&(x>=senderX)) { //y=receiverY+(senderY-receiverY)/5; y=senderY; //System.out.println("1 senderX="+senderX+"------"+"receiverX="+receiverX+"------"+"senderY="+senderY+"------"+"receiverY="+receiverY+"x="+x+"------"+"y="+y); } if((x<=senderX+2*(receiverX-senderX)/5)&&x>senderX+(receiverX-senderX)/5) { //y=receiverY+2*(senderY-receiverY)/5; y=senderY+(receiverY-senderY)/4; //System.out.println("2 senderX="+senderX+"------"+"receiverX="+receiverX+"------"+"senderY="+senderY+"------"+"receiverY="+receiverY+"x="+x+"------"+"y="+y); } if((x<=senderX+3*(receiverX-senderX)/5)&&x>senderX+2*(receiverX-senderX)/5) { //y=receiverY+3*(senderY-receiverY)/5; y=senderY+2*(receiverY-senderY)/4; //System.out.println("3 senderX="+senderX+"------"+"receiverX="+receiverX+"------"+"senderY="+senderY+"------"+"receiverY="+receiverY+"x="+x+"------"+"y="+y); } if((x<=senderX+4*(receiverX-senderX)/5)&&(x>senderX+3*(receiverX-senderX)/5)) { //y=receiverY+4*(senderY-receiverY)/5; y=senderY+3*(receiverY-senderY)/4; //System.out.println("4 senderX="+senderX+"------"+"receiverX="+receiverX+"------"+"senderY="+senderY+"------"+"receiverY="+receiverY+"x="+x+"------"+"y="+y); } if((x<=receiverX)&&(x>senderX+4*(receiverX-senderX)/5)) { y=receiverY; //System.out.println("5 senderX="+senderX+"------"+"receiverX="+receiverX+"------"+"senderY="+senderY+"------"+"receiverY="+receiverY+"x="+x+"------"+"y="+y); } if(x > receiverX) { x =senderX ; y=senderY; //System.out.println("6 senderX="+senderX+"------"+"receiverX="+receiverX+"------"+"senderY="+senderY+"------"+"receiverY="+receiverY+"x="+x+"------"+"y="+y); //x=1; } } //if((receiverX< senderX)&&(receiverY<senderY)) //if(receiverY<senderY) if(receiverX< senderX) { x -= 50; if((x<=receiverX+(senderX-receiverX)/5)&&(x>receiverX)) { //y=receiverY+(senderY-receiverY)/5; y=receiverY; } if((x<=receiverX+2*(senderX-receiverX)/5)&&x>receiverX+(senderX-receiverX)/5) { //y=receiverY+2*(senderY-receiverY)/5; y=receiverY+(senderY-receiverY)/4; } if((x<=receiverX+3*(senderX-receiverX)/5)&&x>receiverX+2*(senderX-receiverX)/5) { //y=receiverY+3*(senderY-receiverY)/5; y=receiverY+2*(senderY-receiverY)/4; } if((x<=receiverX+4*(senderX-receiverX)/5)&&(x>receiverX+3*(senderX-receiverX)/5)) { //y=receiverY+4*(senderY-receiverY)/5; y=receiverY+3*(senderY-receiverY)/4; } if((x<=senderX)&&(x>receiverX+4*(senderX-receiverX)/5)) { y=senderY; } if(x < receiverX) { x =senderX; y=senderY; //x=1; } } } } /* if(isStart) { //x=senderX; x=x+10; g.setColor(Color.RED); g.fillRect(x, y, 30,15); } */ }写的有点乱。。 刚才把画虚线的暂时屏蔽掉了,已经解决了第二个问题!那重写paint的问题应该怎么解决呢??你把paint部分的代码发出来看看是不是不在这部分代码里面呀?我定义了一个按钮,按钮启动后开始调用repaint()方法。。 没仔细看,可能你每次paint之前没有擦除原来的吧 已经搞定啦~我把timer放到一个按钮里面就ok了! java执行mysqldump命令的问题 inputstream读N个字节的奇怪现象 编译运行不了 菜鸟二问:如何理解角色,类的关系. unix下,java 能否实现与客户端的域socket通讯?能的话,如何实现?请大虾们赐教! 如何用jdbc访问access数据库,请高手给指点.在线等待! Java io问题, 菜鸟求解 各位高手,问道关于类加载的题目 急求JBUILDER7的注册码!高分! 关于java中swing部分fileview问题 java编写了一段简单的代码,编译后显示错误,请高手看看 tomcat配置问题
{
System.out.println("***");
path = new GeneralPath();
path.moveTo(50, 50);
path.lineTo(200, 200);
float[] dash = new float[] { 5, 5 };
for (int i = 0; i < 6; i++) {
bs[i] = new BasicStroke(6.0f, BasicStroke.CAP_BUTT,
BasicStroke.JOIN_MITER, 10.0f, dash, i);
}
this.OpenFile=new JButton("Open File");
this.lblTime = new JLabel("Start");
this.lblTime.setFont(new Font("Monospaced", Font.BOLD, 30));
this.lblTime.setHorizontalAlignment(SwingConstants.CENTER);
this.lblTime.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e)//鼠标点击事件
{
begin = true;
lblTime.setText(timeStr(Start));
}
});
add(lblTime);
add(OpenFile);
//setLayout(new BorderLayout());
//add(lblTime, BorderLayout.NORTH);
this.setLayout(null);
lblTime.setBounds(800,20,100,30);
OpenFile.setBounds(600,20,150,30);
timer.start();
}
但是JLabel lbltime就没有这个情况。。
虚线的问题你不是自己定义了那几个BasicStroke,不就是那样的虚线吗,你应该修改了窗体线段的绘制方法吧
你把paint部分的代码发出来看看
你把paint部分的代码发出来看看public void paintComponent(Graphics g) {
//System.out.println("senderX:"+senderX);
//System.out.println("receiverX:"+receiverX);
Graphics2D g2 = (Graphics2D) g;
if (!begin) return;//鼠标点击之后begin=true
super.paintComponent(g);
g.setColor(Color.BLACK);//画边框
//g2.drawLine(300, 0, 300, 1000);
g2.drawRect(505, 105, 600, 550);
if (Start >= MAXTIME) {
lblTime.setText("END!!");
}
Start += 1;
lblTime.setText(timeStr(Start));
Image icar = getToolkit().getImage("blude_car2.gif");//读取图片
Image Sroad=getToolkit().getImage("road2.PNG");//读取图片
Image Hroad=getToolkit().getImage("road1.PNG");//读取图片
//BufferedImage bufferedImage=(BufferedImage) getToolkit().getImage("blude_car2.gif");
//System.out.println("sy:"+sy);
//System.out.println("nsy:"+nsy);
for (int i = 0; i < Open.carnum; i++) //小车运动
{
if (getSx()[i] < getEx()[i])//小车横向移动
{ // System.out.println("************");
getSx()[i] += ((double)getdelay1()[i] / 1000);//速度除以1000
//System.out.println(getdelay1()[i] / 10);
// Senderx[i] = getSx()[i];
}
if (getSy()[i] < getEy()[i]) //小车纵向移动
{
getSy()[i] += ((double)getdelay1()[i] / 1000);
//System.out.println((double)getdelay1()[i] / 1000);
//System.out.println(getSy()[i] );
}
if (nsx[i]< nex[i])//小车横向移动
{
g.drawImage(Hroad, 0, (int)ney[i],50, 1000, null);
}
if (nsy[i] < ney[i]) //小车纵向移动
{
g.drawImage(Sroad, (int)nex[i],0,50, 1000, null);
} File f = new File("blude_car2.gif");
try //小车图片移动,坐标的数据为浮点型
{
BufferedImage image = ImageIO.read(f);
g2.drawRenderedImage(image, AffineTransform.getTranslateInstance((double)getSx()[i], (double)getSy()[i]));
//g2.drawRenderedImage(image, AffineTransform.getTranslateInstance(10.2, 10.8));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//g2.setColor(Color.YELLOW);
// g.drawImage(icar, getSx()[i], getSy()[i], 40, 30, null);
// g.drawImage(map, 350, 5, 100, 100, null);
//Rectangle2D rect = new Rectangle2D.Double(getSx()[i], getSy()[i], 40, 30);
//g2.draw(rect);
//Image2D im=new Image2D(1,1,2,2);
//g2.setStroke(bs[(index++) % 6]);//设置画刷
//AffineTransform transform = AffineTransform.getTranslateInstance(100,200); //先获得偏移
//transform.scale(0.5, 0.5); // 在此基础上,长宽均缩小至50%
//g2.drawRenderedImage((RenderedImage) icar, transform);
//g2.drawRenderedImage(buffer1, AffineTransform.getTranslateInstance(100.0, 200.0));
}
g.setColor(Color.RED);
//System.out.println(Open.senderID+" "+Open.receiverID);
if(isStart)
{
//x=senderX;
//System.out.println("senderx:"+senderX);
//System.out.println("receiverx:"+receiverX);
g.setColor(Color.BLUE);
//g.fillRect(x, y, 15,15);
//Rectangle2D.Float rect=new Rectangle2D.Float(x,y,10F,10F);
//g2.draw(rect);
//g.fillRect(x, y, 10,10);
//System.out.println(sending);
for(int i=0;i<Open.sno;i++)//发送的包的信息
{
senderX=(int)sx[(int)Double.parseDouble(Open.sender[i][2])];
senderY=(int)sy[(int)Double.parseDouble(Open.sender[i][2])];
senderID=(int)Double.parseDouble(Open.sender[i][2]);
//g.fillRect(x, y, 10,10);
//x=senderX;
//System.out.println(senderX+" "+Open.sender[i][2]+" "+senderY+"--------"+x+" "+y);
//System.out.println(Open.sender[i][6]);
if(Open.receiver2[i][0].equals("r"))
{
//System.out.println(i);
//System.out.println(receiverX+" "+Open.receiver2[i][2]+" "+receiverY+"--------"+x+" "+y);
receiverID=(int)Double.parseDouble(Open.receiver2[i][2]);
receiverX = (int)sx[(int)Double.parseDouble(Open.receiver2[i][2])];
receiverY = (int)sy[(int)Double.parseDouble(Open.receiver2[i][2])] ;
if((Double.parseDouble(timeStr(Start))>=Open.STIME[i])&&(Double.parseDouble(timeStr(Start))<=Open.RDTIME[i]))
{
System.out.println(Open.receiver2[i][6]);
g.setColor(Color.BLUE);
g.fillRect(x, y, 15,15);
//g.drawLine(senderX+10, senderY+10, receiverX+10, receiverY+10);
//Drawstring(g,senderX,senderY,receiverX,receiverY,Open.sender[i][5]);
// g2.drawString(Open.sender[i][5],(senderX+(senderX+receiverX)/2)/2,(senderY+(senderY+receiverY)/2)/2);
// g2.drawString(Open.sender[i][5],((senderX+receiverX)/2+receiverX)/2,(receiverY+(senderY+receiverY)/2)/2);
g.setColor(Color.RED);
g.drawString(Open.sender[i][5],x,y-5);
g.drawString(Open.sender[i][6],x,y+25);
g.setColor(Color.YELLOW);
g2.drawString("S",senderX+12,senderY-5);
g2.drawString("R",receiverX+12,receiverY+55);
}
}
// if((Double.parseDouble(timeStr(Start))==Open.STIME[i]))
// {
// packetID.add((int)Double.parseDouble(Open.sender[i][5]));
// }
// if((Double.parseDouble(timeStr(Start))==Open.RDTIME[i]))
// {
// packetID.remove((int)Double.parseDouble(Open.sender[i][5]));
// }
if(Open.receiver2[i][0].equals("D"))
{
receiverID=(int)Double.parseDouble(Open.sender[i][2]);
receiverX=(int)sx[(int)Double.parseDouble(Open.sender[i][2])];
receiverY=(int)sy[(int)Double.parseDouble(Open.sender[i][2])];
//continue;
}
//System.out.println(i+" :"+senderID+" "+receiverID+" "+Open.receiver2[i][0]);
if(receiverX>=senderX)
{
x +=80;
if((x<=senderX+(receiverX-senderX)/5)&&(x>=senderX))
{
//y=receiverY+(senderY-receiverY)/5;
y=senderY;
//System.out.println("1 senderX="+senderX+"------"+"receiverX="+receiverX+"------"+"senderY="+senderY+"------"+"receiverY="+receiverY+"x="+x+"------"+"y="+y);
}
if((x<=senderX+2*(receiverX-senderX)/5)&&x>senderX+(receiverX-senderX)/5)
{
//y=receiverY+2*(senderY-receiverY)/5;
y=senderY+(receiverY-senderY)/4;
//System.out.println("2 senderX="+senderX+"------"+"receiverX="+receiverX+"------"+"senderY="+senderY+"------"+"receiverY="+receiverY+"x="+x+"------"+"y="+y);
}
if((x<=senderX+3*(receiverX-senderX)/5)&&x>senderX+2*(receiverX-senderX)/5)
{
//y=receiverY+3*(senderY-receiverY)/5;
y=senderY+2*(receiverY-senderY)/4;
//System.out.println("3 senderX="+senderX+"------"+"receiverX="+receiverX+"------"+"senderY="+senderY+"------"+"receiverY="+receiverY+"x="+x+"------"+"y="+y);
}
if((x<=senderX+4*(receiverX-senderX)/5)&&(x>senderX+3*(receiverX-senderX)/5))
{
//y=receiverY+4*(senderY-receiverY)/5;
y=senderY+3*(receiverY-senderY)/4;
//System.out.println("4 senderX="+senderX+"------"+"receiverX="+receiverX+"------"+"senderY="+senderY+"------"+"receiverY="+receiverY+"x="+x+"------"+"y="+y);
}
if((x<=receiverX)&&(x>senderX+4*(receiverX-senderX)/5))
{
y=receiverY;
//System.out.println("5 senderX="+senderX+"------"+"receiverX="+receiverX+"------"+"senderY="+senderY+"------"+"receiverY="+receiverY+"x="+x+"------"+"y="+y);
}
if(x > receiverX) {
x =senderX ;
y=senderY;
//System.out.println("6 senderX="+senderX+"------"+"receiverX="+receiverX+"------"+"senderY="+senderY+"------"+"receiverY="+receiverY+"x="+x+"------"+"y="+y);
//x=1;
}
}
//if((receiverX< senderX)&&(receiverY<senderY))
//if(receiverY<senderY)
if(receiverX< senderX)
{
x -= 50;
if((x<=receiverX+(senderX-receiverX)/5)&&(x>receiverX))
{
//y=receiverY+(senderY-receiverY)/5;
y=receiverY;
}
if((x<=receiverX+2*(senderX-receiverX)/5)&&x>receiverX+(senderX-receiverX)/5)
{
//y=receiverY+2*(senderY-receiverY)/5;
y=receiverY+(senderY-receiverY)/4;
}
if((x<=receiverX+3*(senderX-receiverX)/5)&&x>receiverX+2*(senderX-receiverX)/5)
{
//y=receiverY+3*(senderY-receiverY)/5;
y=receiverY+2*(senderY-receiverY)/4;
}
if((x<=receiverX+4*(senderX-receiverX)/5)&&(x>receiverX+3*(senderX-receiverX)/5))
{
//y=receiverY+4*(senderY-receiverY)/5;
y=receiverY+3*(senderY-receiverY)/4;
}
if((x<=senderX)&&(x>receiverX+4*(senderX-receiverX)/5))
{
y=senderY;
}
if(x < receiverX) {
x =senderX;
y=senderY;
//x=1;
}
} }
}
/*
if(isStart)
{
//x=senderX;
x=x+10;
g.setColor(Color.RED);
g.fillRect(x, y, 30,15);
}
*/ }写的有点乱。。
你把paint部分的代码发出来看看
是不是不在这部分代码里面呀?我定义了一个按钮,按钮启动后开始调用repaint()方法。。