jf2双缓冲加上timer,去掉了多线程

package a;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Image;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.image.BufferedImage;
import java.util.TimerTask;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.Timer;

public class JF2 extends JFrame {
	// Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();
	// Rectangle rectangle = new Rectangle(dimension);
	// Robot robot = new Robot();
	// BufferedImage bufferedImage = robot.createScreenCapture(rectangle);
	// ImageIcon imageIcon = new ImageIcon(bufferedImage);
	// JLabel jl = new JLabel(imageIcon);
	public static Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize();

	// JTextPane jtp = Main.jTextPane;
	public static JScrollPane jsp = Main.jScrollPane;
	public static Rectangle rectangle = new Rectangle(Main.main.getBounds());
	public static Rectangle rectangle2 = Dao.graphicsDevices[1].getDefaultConfiguration().getBounds();
	public static Robot robot = null;
	public static BufferedImage bufferedImage = null;
	public static ImageIcon imageIcon = null;
	public static JLabel jLabel = null;
	public static JPanel jPanel = null;
	public static JF2 jf2 = new JF2();

	public JF2() {
		try {
			jPanel = new JPanel();
			robot = new Robot();
			bufferedImage = robot.createScreenCapture(rectangle);
			imageIcon = new ImageIcon(bufferedImage);
			jLabel = new JLabel(imageIcon);
			this.setBounds(0, 0, 1000, 700);
			this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
			this.setExtendedState(JFrame.MAXIMIZED_BOTH);
			this.setTitle("大屏幕");
			this.setUndecorated(true);
			this.addKeyListener(Main.main);
			jPanel.add(jLabel, BorderLayout.CENTER);
			this.add(jPanel);

			java.util.Timer timer = new java.util.Timer();
			timer.schedule(new TimerTask() {
				@Override
				public void run() {
					rectangle = new Rectangle(Main.main.getX(), Main.main.getY(), Main.jScrollPane.getWidth(),
							Main.jScrollPane.getHeight() + Main.main.getInsets().top);

					bufferedImage = robot.createScreenCapture(rectangle);
					imageIcon.setImage(
							bufferedImage.getScaledInstance(rectangle2.width, rectangle2.height, Image.SCALE_FAST));

					jLabel.setIcon(imageIcon);
					jLabel.repaint();
					paint(jPanel.createImage(getWidth(), getHeight()).getGraphics());

					Main.main.requestFocus();
					Main.jTextPane.requestFocusInWindow();

				}
			}, 1, 1);
		} catch (Exception exception) {
			exception.printStackTrace();
		}

	}

	// public void run() {
	// rectangle = new Rectangle(Main.main.getX(), Main.main.getY(),
	// Main.jScrollPane.getWidth(),
	// Main.jScrollPane.getHeight() + Main.main.getInsets().top);
	//
	// bufferedImage = robot.createScreenCapture(rectangle);
	// imageIcon.setImage(bufferedImage.getScaledInstance(this.getWidth(),
	// this.getHeight(), Image.SCALE_FAST));
	//
	// jLabel.setIcon(imageIcon);
	// jLabel.repaint();
	//
	// Thread t = new Thread(this);
	// try {
	// t.sleep(20);
	// } catch (InterruptedException e) {
	// e.printStackTrace();
	// }
	// t.start();
	// Main.main.requestFocus();
	// Main.jTextPane.requestFocusInWindow();
	// }

}

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值