import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class twobuttons
{
int x=70;
int y=70;
public static void main(String args[])
{
twobuttons gui =new twobuttons();
gui.go();
}
public void go()
{
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mydraw drawpanel = new mydraw();
frame.getContentPane().add(drawpanel);
frame.setSize(300,300);
frame.setVisible(true);
for(int i=0;i<130;i++)
{
x++;
y++;
drawpanel.repaint();
try
{
Thread.sleep(50);
}
catch(Exception ex)
{
}
}
}
class mydraw extends JPanel
{
public void paintconponent(Graphics g)
{
g.setColor(Color.green);
g.fillOval(x, y, 40, 40);
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是Head First Java的第12章p384的代码(我正在阅读中文版,也许它不在英文版的同一页面.)如果成功,应该有一个点从左角到达然而,在右上角,我在窗口看不到任何东西.
你在绘画类中有一个拼写错误(paintconponent => paintComponent).所以你没有重写JComponent超类的行为.试试这个:
class mydraw extends JPanel
{
@Override
public void paintComponent(Graphics g)
{
g.setColor(Color.green);
g.fillOval(x, y, 40, 40);
}
}
Run Code Online (Sandbox Code Playgroud)