比如我有文本框A,B,C,D和一个按钮。
当点击按钮时,我想知道上一次焦点是否在A文本框上,可以做到么?

解决方案 »

  1.   

    这是我写的代码。
    import javax.swing.JOptionPane;/**
     *
     * @author  WenLiang
     */
    public class t extends javax.swing.JFrame {
    String f = ""; /** Creates new form t */
    public t() {
    initComponents();
    this.setLocationRelativeTo(null);
    } //GEN-BEGIN:initComponents
    // <editor-fold defaultstate="collapsed" desc="Generated Code">
    private void initComponents() { A = new javax.swing.JTextField();
    B = new javax.swing.JTextField();
    C = new javax.swing.JTextField();
    jButton1 = new javax.swing.JButton(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); A.setText("A");
    A.addFocusListener(new java.awt.event.FocusAdapter() {
    public void focusLost(java.awt.event.FocusEvent evt) {
    AFocusLost(evt);
    }
    }); B.setText("B");
    B.addFocusListener(new java.awt.event.FocusAdapter() {
    public void focusLost(java.awt.event.FocusEvent evt) {
    BFocusLost(evt);
    }
    }); C.setText("C");
    C.addFocusListener(new java.awt.event.FocusAdapter() {
    public void focusLost(java.awt.event.FocusEvent evt) {
    CFocusLost(evt);
    }
    }); jButton1.setText("\u6309\u94ae");
    jButton1.addActionListener(new java.awt.event.ActionListener() {
    public void actionPerformed(java.awt.event.ActionEvent evt) {
    jButton1ActionPerformed(evt);
    }
    }); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(
    getContentPane());
    getContentPane().setLayout(layout);
    layout
    .setHorizontalGroup(layout
    .createParallelGroup(
    javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(
    layout
    .createSequentialGroup()
    .addGap(41, 41, 41)
    .addGroup(
    layout
    .createParallelGroup(
    javax.swing.GroupLayout.Alignment.TRAILING,
    false)
    .addComponent(
    jButton1,
    javax.swing.GroupLayout.Alignment.LEADING,
    javax.swing.GroupLayout.DEFAULT_SIZE,
    javax.swing.GroupLayout.DEFAULT_SIZE,
    Short.MAX_VALUE)
    .addComponent(
    A,
    javax.swing.GroupLayout.Alignment.LEADING,
    javax.swing.GroupLayout.DEFAULT_SIZE,
    98,
    Short.MAX_VALUE)
    .addComponent(
    B,
    javax.swing.GroupLayout.Alignment.LEADING)
    .addComponent(
    C,
    javax.swing.GroupLayout.Alignment.LEADING,
    javax.swing.GroupLayout.DEFAULT_SIZE,
    206,
    Short.MAX_VALUE))
    .addContainerGap(33, Short.MAX_VALUE)));
    layout
    .setVerticalGroup(layout
    .createParallelGroup(
    javax.swing.GroupLayout.Alignment.LEADING)
    .addGroup(
    layout
    .createSequentialGroup()
    .addGap(38, 38, 38)
    .addComponent(
    A,
    javax.swing.GroupLayout.PREFERRED_SIZE,
    javax.swing.GroupLayout.DEFAULT_SIZE,
    javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(
    javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(
    B,
    javax.swing.GroupLayout.PREFERRED_SIZE,
    javax.swing.GroupLayout.DEFAULT_SIZE,
    javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(
    javax.swing.LayoutStyle.ComponentPlacement.RELATED)
    .addComponent(
    C,
    javax.swing.GroupLayout.PREFERRED_SIZE,
    javax.swing.GroupLayout.DEFAULT_SIZE,
    javax.swing.GroupLayout.PREFERRED_SIZE)
    .addPreferredGap(
    javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
    .addComponent(jButton1)
    .addContainerGap(30, Short.MAX_VALUE))); pack();
    }// </editor-fold>
    //GEN-END:initComponents private void CFocusLost(java.awt.event.FocusEvent evt) {
    f = "C";
    } private void BFocusLost(java.awt.event.FocusEvent evt) {
    f = "B";
    } private void AFocusLost(java.awt.event.FocusEvent evt) {
    f = "A";
    } private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    JOptionPane.showMessageDialog(this, "按钮按下前焦点在" + f + "控件上");
    } /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
    java.awt.EventQueue.invokeLater(new Runnable() {
    public void run() {
    new t().setVisible(true);
    }
    });
    } //GEN-BEGIN:variables
    // Variables declaration - do not modify
    private javax.swing.JTextField A;
    private javax.swing.JTextField B;
    private javax.swing.JTextField C;
    private javax.swing.JButton jButton1;
    // End of variables declaration//GEN-END:variables}
      

  2.   

    很强的人啊swing离我是那么的遥远啊!