我继承jpanel生成了一个面板类,在面板中,我重载了paint()方法,在面板中画出我想要的图形。在没有把面板加到jscrollpane中之前,我可以用键盘上的向上,向下键来移动面板上的图形。而在加上jscrollpane后,我移动面板上的图形,滚动条也会跟着移动,这该怎么办,我只想移动面板上的图形。代码如下:
public class editPane extends JPanel{
public void paint(Graphics g){
.....//画出图形
}
public boolean isFocusTraversable(){ return true;} //让面板可以接受焦点
}
.....
editPane ep = new editPane();
JScrollPane js = new JScrollPane(ep);
public class editPane extends JPanel{
public void paint(Graphics g){
.....//画出图形
}
public boolean isFocusTraversable(){ return true;} //让面板可以接受焦点
}
.....
editPane ep = new editPane();
JScrollPane js = new JScrollPane(ep);
import java.awt.Color;
import java.awt.Dimension;
import java.awt.event.KeyAdapter;import javax.swing.*;public class KeyListenerTest {
public static void main(String[] args) {
JPanel p = new JPanel();
p.setBackground(Color.white);
p.addKeyListener(new KeyAdapter() {
public void keyPressed(java.awt.event.KeyEvent e) {
System.out.println(e);
e.consume(); //***//
}
public void keyReleased(java.awt.event.KeyEvent e) {
System.out.println(e);
e.consume(); //***//
}
});
p.setFocusable(true);
p.setPreferredSize(new Dimension(500, 500));
JScrollPane sp = new JScrollPane(p); JFrame f = new JFrame();
f.getContentPane().add(sp, BorderLayout.CENTER);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setSize(300, 300);
f.setLocationRelativeTo(null);
f.show();
}
}