私は簡単なプログラムで助けが必要です。プログラムマークをクリックすると、私はそれをマークします。私は過去の動きを見たいと思います。ペイントの鉛筆のように。JFrameを再描画しない方法は?ちょうどペイント
クラスTest.java
import java.awt.*;
import java.awt.event.*;
import java.util.Scanner;
import java.io.IOException;
import java.lang.*;
import javax.swing.*;
public class Test{
JFrame frame;
public static void main(String[] args){
Test smallTest = new Test();
smallTest.letsDoIt();
}
public void letsDoIt(){
frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton buttonOfTheEnd = new JButton("EXIT");
buttonOfTheEnd.addActionListener(new theEndListener());
graphPanel panelR = new graphPanel();
panelR.setBackground(Color.WHITE);
frame.getContentPane().add(BorderLayout.CENTER, panelR);
frame.getContentPane().add(BorderLayout.SOUTH, buttonOfTheEnd);
frame.setSize(500,500);
frame.setVisible(true);
frame.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
frameMouseClicked(evt);
}
});
}
void frameMouseClicked(java.awt.event.MouseEvent evt) {
System.out.println("("+MouseInfo.getPointerInfo().getLocation().x+", "+MouseInfo.getPointerInfo().getLocation().y+")");
frame.repaint();
}
class theEndListener implements ActionListener {
public void actionPerformed(ActionEvent zdarzenie){
System.exit(0);
}
}
// public void paintComponent(Graphics g){
// super.paintComponent(g);
// int wspX = MouseInfo.getPointerInfo().getLocation().x;
// int wspY = MouseInfo.getPointerInfo().getLocation().y;
// g.setColor(Color.RED);
// g.fillRect(wspX, wspY, 10, 10);
//
}
クラスgraphPanel
import java.awt.*;
import javax.swing.*;
class graphPanel extends JPanel{
public void paintComponent(Graphics g){
super.paintComponent(g);
int locX = MouseInfo.getPointerInfo().getLocation().x - 10;
int locY = MouseInfo.getPointerInfo().getLocation().y - 30;
g.setColor(Color.ORANGE);
g.fillRect(locX, locY, 10, 10);
}
}
の助けに感謝します。
してください([受け入れます] http://meta.stackexchange.com/questions/16721/how-does-受け入れ率 - 仕事/ 65088#65088)いくつかの答え! –