【发布时间】:2014-07-31 01:28:41
【问题描述】:
首先,我有 2 个类 Runtest 和 Front 用 Jpanel 扩展。我想做的是用按键监听器(ENTER键)切换这两个面板,但它只是静态的,没有改变,这是到目前为止的代码,
import static com.sun.java.accessibility.util.AWTEventMonitor.addKeyListener;
import java.awt.CardLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.sound.sampled.LineUnavailableException;
import javax.sound.sampled.UnsupportedAudioFileException;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.SwingUtilities;
public class Pactest implements ActionListener , KeyListener{
JFrame frame = new JFrame("Test");
Runtest test ;
Front front = new Front();
CardLayout cardpane = new CardLayout();
int key ;
public Pactest() throws IOException, UnsupportedAudioFileException, LineUnavailableException {
addKeyListener(this);
this.test = new Runtest();
frame.setLayout(cardpane);
frame.setSize(355, 520);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(front);
frame.add(test);
frame.setVisible(true);
frame.setResizable(false);
cardpane.show(front, "1");
}
@Override
public void actionPerformed(ActionEvent ae) {
if(key == KeyEvent.VK_ENTER){
cardpane.next(frame);
}
}
@Override
public void keyTyped(KeyEvent ke) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
@Override
public void keyPressed(KeyEvent ke) {
key = ke.getKeyCode();
}
@Override
public void keyReleased(KeyEvent ke) {
throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
}
public static void main(String[] args) throws IOException, UnsupportedAudioFileException, LineUnavailableException {
SwingUtilities.invokeLater( new Runnable() {
@Override
public void run(){
new Pactest() ;
}
});
}
【问题讨论】:
标签: java swing jpanel keylistener cardlayout