
java paint函数
我在frame中画了很多根线,然后把frame最小化,在重现frame时,frame上至剩下最后一根线,为什么?怎么解决求大虾帮助...
我在frame中画了很多根线,然后把frame最小化,在重现frame时,frame上至剩下最后一根线,为什么?怎么解决 求大虾帮助
展开
1个回答
2013-11-26
展开全部
import javax.swing.*;
import java.awt.*;
/**
* @author Hardneedl
*/
class GridPainter extends JFrame {
private static final Dimension minSize = new Dimension(300, 200);
private static final Dimension maxSize = new Dimension(1024, 768);
private static final Dimension preferredSize = new Dimension(600, 400);
public Dimension getMaximumSize() {return maxSize;}
public Dimension getMinimumSize() {return minSize;}
public Dimension getPreferredSize() {return preferredSize;}
public String getTitle() {return "Frame Title";}
private final JComponent canvas = new JComponent(){
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics gg = g.create();
gg.setColor(Color.BLACK);
int w = getWidth(), h = getHeight();
gg.fillRect(0,0,w,h);
gg.setColor(Color.BLUE);
for (int i = 0; i < w; i+=10) gg.drawLine(i,0,i,h);
gg.setColor(Color.YELLOW);
for (int i = 0; i < h; i+=10) gg.drawLine(0,i,w,i);
gg.dispose();
}
};
GridPainter() throws HeadlessException {
doLay();
attachListeners();
}
private void doLay() {
Container container = getContentPane();
container.add(canvas,BorderLayout.CENTER);
pack();
}
private void attachListeners() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new GridPainter().setVisible(true);
}
}
import java.awt.*;
/**
* @author Hardneedl
*/
class GridPainter extends JFrame {
private static final Dimension minSize = new Dimension(300, 200);
private static final Dimension maxSize = new Dimension(1024, 768);
private static final Dimension preferredSize = new Dimension(600, 400);
public Dimension getMaximumSize() {return maxSize;}
public Dimension getMinimumSize() {return minSize;}
public Dimension getPreferredSize() {return preferredSize;}
public String getTitle() {return "Frame Title";}
private final JComponent canvas = new JComponent(){
protected void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics gg = g.create();
gg.setColor(Color.BLACK);
int w = getWidth(), h = getHeight();
gg.fillRect(0,0,w,h);
gg.setColor(Color.BLUE);
for (int i = 0; i < w; i+=10) gg.drawLine(i,0,i,h);
gg.setColor(Color.YELLOW);
for (int i = 0; i < h; i+=10) gg.drawLine(0,i,w,i);
gg.dispose();
}
};
GridPainter() throws HeadlessException {
doLay();
attachListeners();
}
private void doLay() {
Container container = getContentPane();
container.add(canvas,BorderLayout.CENTER);
pack();
}
private void attachListeners() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args) {
new GridPainter().setVisible(true);
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询