java - 图形,屏幕闪烁
问题描述
屏幕将所有内容呈现在正确的位置,但整个屏幕在打开时会闪烁。如果我不添加“ 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();
}
}
解决方案
推荐阅读
- python - 由于 try 循环或 while 循环,最高编号查找代码出现错误
- c# - Azure 函数中的时区和夏令时
- node.js - Firebase 函数超时
- html - 当我在 php 上做 foreach 时,如何让卡片添加到一边?
- django - Django从表中检索提交的值
- javascript - 在 Angular 中动态生成视图中的链接
- java - IMB PCF 代理在查询通道状态时返回错误
- java - 如何从“自定义透视”选项(以编程方式)隐藏“菜单可见性”或“工具栏可见性”菜单中的项目可见性
- python - XGBoost python:输入形状错误,特征名称不匹配错误
- python - 我有两个 csv 文件,我需要根据两个文件的交集来合并我想删除未重复的列