java 画图注意 改变窗口大小不会消失
遇到一个用java简单画图的问题。有些需要注意的地方:
具体画图的代码要写在paint()方法里,并且一定注意要使用变量,除非你画完就不想修改了^_^
下面给出个最简单的程序:
import java.awt.Color; import java.awt.Graphics; import javax.swing.JFrame; public class GraphicTest extends JFrame { /** * @param args */ private int width, height, gap; private void setSize(){ gap = 40; width = (int) this.getSize().getWidth(); height = (int) this.getSize().getHeight(); } public GraphicTest(){ this.setSize(400, 300); } public void paint(Graphics g){ super.paint(g); setSize(); g.setColor(Color.RED); g.drawLine(gap, gap, width-gap, gap); g.drawLine(gap, gap, gap, height-gap); g.drawLine(width-gap, gap, width-gap, height-gap); g.drawLine(gap, height-gap, width-gap, height-gap); } public static void main(String[] args) { GraphicTest test = new GraphicTest(); test.setLocationRelativeTo(null); test.setDefaultCloseOperation(DISPOSE_ON_CLOSE); test.setVisible(true); } }
上面只涉及到简单的坐标变量的替换,如果涉及到复杂的画图就要使用其他数据来保存和修改需要画的内容,想要修改画图内容时只需要在其他地方修改数据的状态,然后通过repaint方法更新画图内容。否则你不能确定画图的状态,因为当改变窗口大小的时候,会调用paint方法,这样你在其他地方所做的修改就会消失。