屏幕将所有内容呈现在正确的位置,但是打开时整个屏幕都会闪烁。如果我不添加“ g.drawImage(img,0,0,null) ;”然后就可以了我知道也许我必须使用双缓冲,但是我第一次使用Swing,对如何正确使用双缓冲一无所知。 “ setDoubleBuffered(true)”无效。预先谢谢你。
import java.awt.*;
import java.io.File;
import javax.imageio.ImageIO;
import javax.swing.*;
public class GraphApp extends JFrame {
int x,y;
int ax,by;
Image img = Toolkit.getDefaultToolkit().getImage("C:\\Users\\User\\IdeaProjects\\vychmat\\images\\Background.png");
public GraphApp(){
setTitle("Лабораторная работа №2");
setSize(900,700);
try{
setIconImage(ImageIO.read(new File("C:\\Users\\User\\IdeaProjects\\vychmat\\images\\icon.png")));
}
catch(Exception e){
e.getMessage();
}
setVisible(true);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void paint(Graphics g){
g.drawImage(img,0,0,null);
g.setColor(Color.BLACK);
g.drawString("Y", 210, 250);
g.drawString("X", 390, 440);
if(x==205&&y==425){
g.drawString("Origin(0,0)", 205, 425);
}
//OY
g.drawLine(200, 250, 200, 600);
//OX
g.drawLine(30,425,380,425);
g.setFont(new Font("Palatino Linotype", Font.BOLD,25));
g.drawString("Решение уравнений с заданной точностью",150,75);
repaint();
}
public static void main(String[] args){
new GraphApp();
}
}