日期:2014-05-20  浏览次数:20692 次

java中的画图简单问题
程序中的一个小功能测试没结果,很郁闷,就是在画图之后 在 G.drawLine(90,90,500,500); 这里之后,在图形界面的窗口上没有出现我所期待的直线,这是为何呢?
希望有能解决的朋友帮忙.谢谢~~~


import java.awt.*;
import javax.swing.*;
import java.io.*;
import java.awt.event.*;

public class draw extends JFrame implements ActionListener
{

draw(String title)
{
//图形界面的初始化
super(title);

JMenuItem item=new JMenuItem("程序简介");
item.addActionListener(this);

JMenu Menu=new JMenu("关于");
Menu.add(item);
JMenuBar bar=new JMenuBar();
bar.add(Menu);
setJMenuBar(bar);


setSize(1400,800);
setVisible(true);
setLayout(new BorderLayout());
setResizable(false);
setDefaultCloseOperation(EXIT_ON_CLOSE);

//界面设置结束


//进入图形绘画

Graphics G=this.getGraphics();
G.setColor(Color.PINK);

G.drawLine(90,90,500,500);


validate();

}

public void actionPerformed(ActionEvent e) //事件处理
{
//目前先不作处理
}

public static void main(String []args)
{
new draw("画图板");
}
}


------解决方案--------------------
我已经给你画出来了,你跟我当年犯了一样的错误,你在main函数Graphics G=this.getGraphics();
后面加上一句“super.paintComponents(G);”就OK了,这句代码是将父类也就是这个frame重绘,
你可以理解为刷新,刷新后你才能看见,这是Windows的问题
另外强烈建议楼主的代码规范点,类名小写,变量名大写,惨不忍睹,代码规范是很重要的事情,建议楼主
多加注意