就是我想在一个面板实现只有键盘输入时它才repaint,而其他操作都不repiant,不知道有没有办法?(比如鼠标点击,放大缩小面板都不repaint)
不知道大家有没有办法???
希望知道的人帮下忙....被这个问题困捞了2周时间了...一直没有实现....
不知道大家有没有办法???
希望知道的人帮下忙....被这个问题困捞了2周时间了...一直没有实现....
调试欢乐多
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.KeyListener;public class MyPanel extends JPanel implements KeyListener, MouseListener{
public MyPanel() {
this.addKeyListener(this);
this.addMouseListener(this);
this.setFocusable(true);
}
public void mouseEntered(MouseEvent me) {}
public void mouseReleased(MouseEvent me) {}
public void mouseExited(MouseEvent me) {}
public void mousePressed(MouseEvent me) {}
public void mouseClicked(MouseEvent me) {
this.requestFocusInWindow();
}
public void mouseDragged(MouseEvent me) {}
public void mouseMoved(MouseEvent me) {}
public void keyPressed(KeyEvent ke) {
if (ke.getKeyCode() == KeyEvent.VK_R) {
paintLine();
}
}
public void keyTyped(KeyEvent ke) {}
public void keyReleased(KeyEvent ke) {}
private void paintLine() {
Graphics g = this.getGraphics();
g.setColor(Color.BLACK);
g.drawLine(5, 5, 30, 30);
g.dispose();
}
}
import javax.swing.JTextField;
import java.awt.*;
import javax.swing.JLabel;
import java.awt.event.KeyEvent;
import java.awt.event.KeyAdapter;public class Frame1 extends JFrame {
JTextField jTextField1 = new JTextField();
JLabel jLabel1 = new JLabel();
int keyevent=0;
public Frame1() {
try {
jbInit();
} catch (Exception exception) {
exception.printStackTrace();
}
} private void jbInit() throws Exception {
setBounds(300,200,300,200);
setVisible(true);
getContentPane().setLayout(null);
jTextField1.setBounds(new Rectangle(24, 20, 174, 22));
jTextField1.addKeyListener(new Frame1_jTextField1_keyAdapter(this));
this.getContentPane().add(jTextField1, null);
this.getContentPane().add(jLabel1);
jLabel1.setBounds(new Rectangle(20, 83, 179, 21));
} public static void main(String[] args) {
Frame1 frame1 = new Frame1();
} public void jTextField1_keyPressed(KeyEvent e) {
keyevent=1;
repaint();
}
public void repaint()
{
if(keyevent==0)
{
return;
}else{
jLabel1.setText("能实现了吧");
}
}
}
class Frame1_jTextField1_keyAdapter extends KeyAdapter {
private Frame1 adaptee;
Frame1_jTextField1_keyAdapter(Frame1 adaptee) {
this.adaptee = adaptee;
} public void keyPressed(KeyEvent e) {
adaptee.jTextField1_keyPressed(e);
}
}