import javax.swing.*; import java.awt.*;import java.awt.event.*;public class TankClient extends JFrame{
private static final long serialVersionUID = 3656486349307285950L;
public static void main(String[] args) {
TankClient tk = new TankClient();
tk.window();
} public void window(){
JFrame jf1 = new JFrame("坦克大战");
Container container = jf1.getContentPane();
jf1.setBounds(250,60,800,600);
container.setBackground(Color.GREEN);
jf1.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
jf1.setResizable(false);
jf1.setVisible(true);
}
public void paint(Graphics g) {
Color c = g.getColor();
g.setColor(Color.RED);
g.fillOval(50, 50, 30, 30);
g.setColor(c);
}
}谁能告诉我这个不能画出圆?要详细
private static final long serialVersionUID = 3656486349307285950L;
public static void main(String[] args) {
TankClient tk = new TankClient();
tk.window();
} public void window(){
JFrame jf1 = new JFrame("坦克大战");
Container container = jf1.getContentPane();
jf1.setBounds(250,60,800,600);
container.setBackground(Color.GREEN);
jf1.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
jf1.setResizable(false);
jf1.setVisible(true);
}
public void paint(Graphics g) {
Color c = g.getColor();
g.setColor(Color.RED);
g.fillOval(50, 50, 30, 30);
g.setColor(c);
}
}谁能告诉我这个不能画出圆?要详细
JPanel中实现paintComponent方法
private static final long serialVersionUID = 3656486349307285950L; public static void main(String[] args) {
TankClient tk = new TankClient();
tk.window();
} public void window() {
JFrame jf1 = new JFrame("坦克大战");
Container container = jf1.getContentPane();
jf1.setBounds(250, 60, 800, 600);
container.setBackground(Color.GREEN);
jf1.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
jf1.setResizable(true);
jf1.setVisible(true);
Graphics g = jf1.getGraphics();
// Color c = g.getColor();
g.setColor(Color.RED);
g.fillOval(50, 50, 30, 30);
// g.setColor(c);
}
}
import java.awt.event.*;public class TankClient extends Frame {
public static void main(String[] args) {
new TankClient().window();
} public void window() {
setLocation(400, 300);
setSize(800, 600);
this.setTitle("TankWar");
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
setResizable(false);
this.setBackground(Color.GREEN);
setVisible(true);
} public void paint(Graphics g) {
Color c = g.getColor();
g.setColor(Color.RED);
g.fillOval(50, 50, 30, 30);
g.setColor(c);
}
}
此方法实际上将绘制工作委托给三个受保护的方法:paintComponent、paintBorder 和 paintChildren。按列出的顺序调用这些方法,以确保子组件出现在组件本身的顶部。一般来说,不应在分配给边框的 insets 区域绘制组件及其子组件。子类可以始终重写此方法。只想特殊化 UI(外观)委托的 paint 方法的子类只需重写 paintComponent。 摘自java api 文档
public class TankClient extends Frame
public void window() {
this.setBounds(250,60,800,600);
this.setBackground(Color.GREEN);
this.setTitle("坦克大战");
this.setResizable(false);
this.setVisible(true);
}