解决方案 »

  1.   

    以下代码可供你参考下:主要是局部内部类如何访问外部类的成员变量、局部变量以及引用外部类本身
    1、frame属于某个类的成员变量时package swing;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import javax.swing.*;public class Demo7 {
    private JFrame jf=new JFrame("test");
    private JButton jb=new JButton("按下");
    public void init()
    {
    jb.addMouseListener(new MouseAdapter() {
    public void mouseClicked(MouseEvent e) {
    jf.setTitle("gg");//jf和jb同属于某个类的成员变量,则直接使用其名字jf即可
    }
    });
    jf.add(jb);
    jf.pack();
    jf.setVisible(true);
    }
    public static void main(String[] args) {
    new Demo7().init();
    }
    }2、frame变量同属于某个方法的局部变量时
    package swing;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import javax.swing.*;
    public class Demo6 {
    public static void main(String[] args) {
    final JFrame jf=new JFrame("test");
    JButton jb=new JButton("按下");
    jb.addMouseListener(new MouseAdapter() {
    public void mouseClicked(MouseEvent e) {
    jf.setTitle("gg");//jf和jb是同属于某个方法的局部变量,则须将jf声明为final,然后直接使用其名字jf即可
    }
    });
    jf.add(jb);
    jf.pack();
    jf.setVisible(true);
    }}3、button属于frame的成员变量时
    package swing;
    import java.awt.event.MouseAdapter;
    import java.awt.event.MouseEvent;
    import javax.swing.*;public class Demo5 {
    public static void main(String[] args) {
    JFrame jf=new MyJFrame("test");
    jf.pack();
    jf.setVisible(true);
    }}class MyJFrame extends JFrame
    {
    private JButton jb=new JButton("按下");
    public MyJFrame(String str)
    {
    super(str);
    jb.addMouseListener(new MouseAdapter() {
    public void mouseClicked(MouseEvent e) {
    MyJFrame.this.setTitle("gg"); //jb属于MyFrame类的成员变量,则通过MyJFrame.this方式引用MyFrame类的当前实例
    }
    });
    this.add(jb);
    }
    }
      

  2.   

    final JFrame frame = new JFrame("...");
    final JTextField input = new JTextField();
    final JButton click = new JButton("Update Title");
    ... // add component to frame
    click.addActionListener(new ActionListener(){
        @Override public void actionPerformed(ActionEvent e){
            frame.setTitle(input.getText());
        }
    });
      

  3.   

    求助为按钮设置快捷键,我想为一个按钮设置回车为快捷键,不需要按alt的那种,下面尝试为何失败了,求指导
    Action sendMessege = new AbstractAction() {

    @Override
    public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    displayArea.append(editArea.getText()+"\n");
    editArea.setText("");
    editArea.requestFocus();
    }
    };

    sendButton.addActionListener(sendMessege);
    sendButton.registerKeyboardAction(sendMessege, 
    KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0), JComponent.WHEN_IN_FOCUSED_WINDOW);

    /*这是另一种方法。也没成功
    InputMap inputMap = sendButton.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
    inputMap.put(KeyStroke.getKeyStroke((char)(KeyEvent.VK_ENTER)), "send");
    sendButton.getActionMap().put("send", sendMessege);

    sendButton.addMouseListener(new MouseAdapter() {
    @Override
    public void mouseClicked(MouseEvent e) {

    }
    });
    */
      

  4.   

    求助为按钮设置快捷键,我想为一个按钮设置回车为快捷键,不需要按alt的那种,下面尝试为何失败了,求指导
    Action sendMessege = new AbstractAction() {

    @Override
    public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
    displayArea.append(editArea.getText()+"\n");
    editArea.setText("");
    editArea.requestFocus();
    }
    };

    sendButton.addActionListener(sendMessege);
    sendButton.registerKeyboardAction(sendMessege, 
    KeyStroke.getKeyStroke(KeyEvent.VK_ENTER,0), JComponent.WHEN_IN_FOCUSED_WINDOW);

    /*这是另一种方法。也没成功
    InputMap inputMap = sendButton.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW);
    inputMap.put(KeyStroke.getKeyStroke((char)(KeyEvent.VK_ENTER)), "send");
    sendButton.getActionMap().put("send", sendMessege);

    sendButton.addMouseListener(new MouseAdapter() {
    @Override
    public void mouseClicked(MouseEvent e) {

    }
    });
    */按钮有焦点才行。
    看看 JRootPane的setDefaultButton方法
      

  5.   

    按钮有焦点才行。
    看看 JRootPane的setDefaultButton方法当我在编辑框中编辑时,编辑框具有焦点。按钮没有焦点,怎么做到按下回车启动按钮?