下面是我的代码,import java.awt.*;
import javax.swing.*;public class Mypart2 extends JComponent {
double n=0;
public static void main(String args[]){
JFrame f = new JFrame();
f.setSize(512,512);
Mypart2 m1= new Mypart2();
Mypart2 m2= new Mypart2();
f.add(m1,BorderLayout.WEST);
f.add(m2,BorderLayout.EAST);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
public Mypart2(){
(new Thread(){
public void run(){
while(true){
n+=30;
repaint();
try{Thread.sleep(30);}catch(Exception e){}
}}
}).start();
}
public void paint(Graphics g)
{
super.paint(g);
Graphics2D g2 = (Graphics2D)g;
g2.clearRect(0,0,512,512);
g2.translate(256, 256);
g2.rotate(Math.toRadians(n));
g2.drawLine(0,0,100,100);
g2.drawLine(0,0,150,10);
}
}程序显示不出。
但是当我把 f.add(m1,BorderLayout.WEST); 改为 f.add(m1,BorderLayout.CENTER);
就只是能显示一个图形,另外一个看不到。
我的目的是把两个图形分别显示在左右两边。
不知道什么原因。
import javax.swing.*;public class Mypart2 extends JComponent {
double n=0;
public static void main(String args[]){
JFrame f = new JFrame();
f.setSize(512,512);
Mypart2 m1= new Mypart2();
Mypart2 m2= new Mypart2();
f.add(m1,BorderLayout.WEST);
f.add(m2,BorderLayout.EAST);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
public Mypart2(){
(new Thread(){
public void run(){
while(true){
n+=30;
repaint();
try{Thread.sleep(30);}catch(Exception e){}
}}
}).start();
}
public void paint(Graphics g)
{
super.paint(g);
Graphics2D g2 = (Graphics2D)g;
g2.clearRect(0,0,512,512);
g2.translate(256, 256);
g2.rotate(Math.toRadians(n));
g2.drawLine(0,0,100,100);
g2.drawLine(0,0,150,10);
}
}程序显示不出。
但是当我把 f.add(m1,BorderLayout.WEST); 改为 f.add(m1,BorderLayout.CENTER);
就只是能显示一个图形,另外一个看不到。
我的目的是把两个图形分别显示在左右两边。
不知道什么原因。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货