import javax.swing.*;
import java.awt.*;public class CanvasTest
{
JFrame frame = new JFrame();
Canvas canvas = new Canvas();
void CanvasTest()
{
frame.setBounds(100, 100, 300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
canvas.setBounds(0, 0, 200, 100);
frame.getContentPane().setLayout(null);
frame.getContentPane().add(canvas);
frame.setVisible(true);
}
void repaint()
{
Graphics g = canvas.getGraphics();
g.setColor(Color.BLACK);
g.fillRect(0, 0, 100, 100);
}
public static void main(String[] args) throws InterruptedException
{
CanvasTest test = new CanvasTest();
Thread.currentThread().sleep(2000);/??????????
test.repaint();
}
}
如果不让线程暂停地话 画上地图形就只会闪烁一次 而不会停留在上面那?
import java.awt.*;public class CanvasTest
{
JFrame frame = new JFrame();
Canvas canvas = new Canvas();
void CanvasTest()
{
frame.setBounds(100, 100, 300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
canvas.setBounds(0, 0, 200, 100);
frame.getContentPane().setLayout(null);
frame.getContentPane().add(canvas);
frame.setVisible(true);
}
void repaint()
{
Graphics g = canvas.getGraphics();
g.setColor(Color.BLACK);
g.fillRect(0, 0, 100, 100);
}
public static void main(String[] args) throws InterruptedException
{
CanvasTest test = new CanvasTest();
Thread.currentThread().sleep(2000);/??????????
test.repaint();
}
}
如果不让线程暂停地话 画上地图形就只会闪烁一次 而不会停留在上面那?
把你的repaint中的代码放到你自己写的void paint(Graphics g)方法中
import javax.swing.*;
import java.awt.*;public class CanvasTest extends Canvas
{
JFrame frame = new JFrame();
CanvasTest()
{
frame.setBounds(100, 100, 300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setBounds(0, 0, 200, 100);
frame.getContentPane().setLayout(null);
frame.getContentPane().add(this);
frame.setVisible(true);
}
public void paint(Graphics g)
{
g.setColor(Color.BLACK);
g.fillRect(0, 0, 100, 100);
}
public static void main(String[] args) throws InterruptedException
{
CanvasTest test = new CanvasTest();
//Thread.currentThread().sleep(2000);//??????????
//test.repaint();
}
}