永发信息网

java中 paint(Graphics g)不调用;急啊。哪位大虾帮忙解决下

答案:3  悬赏:0  手机版
解决时间 2021-03-07 11:35
  • 提问者网友:椧運幽默
  • 2021-03-06 22:35
import java.awt.*;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.*;
public class ailin extends Frame{
int width=Toolkit.getDefaultToolkit().getScreenSize().width;
int height=Toolkit.getDefaultToolkit().getScreenSize().height;
BufferedImage bgImage=null;
public ailin(){
JFrame f=new JFrame();
f.setVisible(true);
f.setSize(499, 520);
f.setTitle("火翼五子棋");
f.addMouseListener(this);
f.setResizable(false);
f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
f.setLocation((width-500)/2,(height-500)/2 );
try {
bgImage=ImageIO.read(new File("F:\\五子棋.jpg"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

public void paint(Graphics g) {
System.out.println("这句话打印不出来");
g.drawImage(bgImage, 1, 26, this);
for(int i=0;i<=18;i++){
//横线
g.drawLine(15, 90+i*20, 375, 90+i*20);
//纵线
g.drawLine(15+i*20, 90, 15+i*20, 450);
}
g.setFont(new Font("黑体",Font.BOLD,30));
g.drawString("游戏信息:", 75, 70);
g.setFont(new Font("宋体",14,14));
g.drawString("黑方信息:", 25, 492);
g.drawString("白方信息:", 235, 492);
g.fillOval(x, y, 16, 16);
}

public class ailin{
public static void main(String[] args) {
ailin a=new ailin();
}
}
最佳答案
  • 五星知识达人网友:怀裏藏嬌
  • 2021-03-06 23:13
看看你的构造方法,你的构造方法里面只是重新创建除了一个JFrame,人家掉了JFrame自己的paint方法,当然调不到你的类里面的方法了.要想调你自己的paint方法,就吧那个JFrame对象去掉.
package Date0902.Date0902_aili;

import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.Toolkit;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

import javax.imageio.ImageIO;

public class ailin extends Frame {
int width = Toolkit.getDefaultToolkit().getScreenSize().width;

int height = Toolkit.getDefaultToolkit().getScreenSize().height;

BufferedImage bgImage = null;

public ailin() {
setVisible(true);
setSize(499, 520);
setTitle("火翼五子棋");
//f.addMouseListener(this);
setResizable(false);
// setDefaultCloseOperation(Frame.EXIT_ON_CLOSE);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent event) {
System.exit(0);
}
});

setLocation((width - 500) / 2, (height - 500) / 2);
try {
bgImage = ImageIO.read(new File("F:\\照片\\Photo-2.jpg"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}

@Override
public void paint(Graphics g) {
System.out.println("这句话打印不出来");
g.drawImage(bgImage, 1, 26, this);
for (int i = 0; i <= 18; i++) {
// 横线
g.drawLine(15, 90 + i * 20, 375, 90 + i * 20);
// 纵线
g.drawLine(15 + i * 20, 90, 15 + i * 20, 450);
}
g.setFont(new Font("黑体", Font.BOLD, 30));
g.drawString("游戏信息:", 75, 70);
g.setFont(new Font("宋体", 14, 14));
g.drawString("黑方信息:", 25, 492);
g.drawString("白方信息:", 235, 492);
g.fillOval(0, 0, 16, 16);
}

public static void main(String[] args) {
ailin a = new ailin();
}
}
全部回答
  • 1楼网友:封刀令
  • 2021-03-07 01:18
h
  • 2楼网友:慢性怪人
  • 2021-03-07 00:49
你好! 你有调用这个方法吗?一般用的话是调用组件的repaint方法 来实现对paint方法的调用 不是直接用paint 如有疑问,请追问。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯