我用这个public void paint(Graphics g )写了个画图板程序,可以用鼠标在上面画任意的线,我在学校的机子上运行都是一切正常,画图板的窗体是灰色的,但是在家里的机子上运行弹出来画图板窗口就是透明得,等于是只出现了的标题栏和边框一样,窗体的内容就像把背景截了下来了一样,真是奇怪啊?怎么回事啊?
} public static void main(String[] args) { new DrawEveryWhere(); } int startX,startY,endX,endY; ArrayList <Lines> list = new ArrayList();
public void mouseClicked(MouseEvent e) { // TODO 自动生成方法存根
} public void mouseEntered(MouseEvent e) { // TODO 自动生成方法存根
} public void mouseExited(MouseEvent e) { // TODO 自动生成方法存根
} public void mousePressed(MouseEvent e) { this.startX = e.getX(); this.startY = e.getY(); } public void mouseReleased(MouseEvent e) { // TODO 自动生成方法存根
} public void mouseDragged(MouseEvent e) { Lines line = new Lines(startX,startY,e.getX(),e.getY()); list.add(line); this.startX=e.getX(); this.startY=e.getY();
repaint();
} public void mouseMoved(MouseEvent e) {
}
public void paint(Graphics g ){
for (int i=0;i<list.size();i++){ list.get(i).drawLines(g); } }
import java.awt.Graphics;public class Lines { int sX,sY,eX,eY; public Lines(int sX,int sY,int eX,int eY){ this.sX = sX; this.sY = sY; this.eX = eX; this.eY = eY; }
public void drawLines(Graphics g){ g.drawLine(sX, sY, eX, eY); } }
import java.awt.Container;
import java.awt.Graphics;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import java.util.ArrayList;import javax.swing.JFrame;
public class DrawEveryWhere extends JFrame implements MouseMotionListener,MouseListener{
public DrawEveryWhere(){
this.setTitle("画图板");
this.setBounds(200,150,400,300);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.addMouseListener(this);
this.addMouseMotionListener(this);
this.setVisible(false);
Container contentPane = this.getContentPane();
contentPane.setBackground(Color.white);
this.setVisible(true);
}
public static void main(String[] args) {
new DrawEveryWhere();
}
int startX,startY,endX,endY;
ArrayList <Lines> list = new ArrayList();
public void mouseClicked(MouseEvent e) {
// TODO 自动生成方法存根
}
public void mouseEntered(MouseEvent e) {
// TODO 自动生成方法存根
}
public void mouseExited(MouseEvent e) {
// TODO 自动生成方法存根
}
public void mousePressed(MouseEvent e) {
this.startX = e.getX();
this.startY = e.getY();
}
public void mouseReleased(MouseEvent e) {
// TODO 自动生成方法存根
}
public void mouseDragged(MouseEvent e) {
Lines line = new Lines(startX,startY,e.getX(),e.getY());
list.add(line);
this.startX=e.getX();
this.startY=e.getY();
repaint();
}
public void mouseMoved(MouseEvent e) {
}
public void paint(Graphics g ){
for (int i=0;i<list.size();i++){
list.get(i).drawLines(g);
}
}
import java.awt.Graphics;public class Lines {
int sX,sY,eX,eY;
public Lines(int sX,int sY,int eX,int eY){
this.sX = sX;
this.sY = sY;
this.eX = eX;
this.eY = eY;
}
public void drawLines(Graphics g){
g.drawLine(sX, sY, eX, eY);
}
}
比如你在win2000和winxp下运行,明显窗体风格不同。
你在xp下,把xp风格去掉,明显窗体风格又不同。
1.4的jre跟1.5的,又有可能不同,等等
总的说来,可以通过UIManager.setLookAndFeel(LookAndFeel newLookAndFeel)去设置