2017-05-10 12 views
0

すべてのインポートが必要ですが、エラーはありませんが機能しません。押したときにJButtonの色を変更できません

final JButton button_32 = new JButton("2"); 
    button_32.addActionListener(new ActionListener() { 
     public void actionPerformed(ActionEvent e) { 

      button_32.setBackground(Color.red); 
     } 
    }); 
    button_32.setBounds(0, 57, 33, 29); 
    contentPane.add(button_32); 

答えて

0

「抽象クラスの実装」に関連していると思います。 これを試してみてください:

import java.awt.BorderLayout; 
import java.awt.Color; 
import java.awt.event.ActionEvent; 
import java.awt.event.ActionListener; 
import javax.swing.JButton; 
import javax.swing.JFrame; 


public class ExamButton extends JFrame { 

    JButton button_32 = new JButton("ssf"); 
    JFrame frame = new JFrame(); 

    public ExamButton() { 

     final JButton button_32 = new JButton("2"); 
     button_32.addActionListener(new ActionListener() { 
      @Override 
      public void actionPerformed(ActionEvent ae) { 
       button_32.setBackground(Color.red); 
      } 
     }); 
     button_32.setBounds(0, 57, 33, 29); 

     add(button_32, BorderLayout.CENTER); 
     setSize(300, 300); 
     setVisible(true); 

    } 

    public static void main(String[] args) { 
     new ExamButton(); 
    } 

} 
0

あなたはButtonModelを拡張するか、単にそれを行う独自のボタンを作成することができ、hereを示唆したように。

0
public class Main { 

    static JFrame frame; 

    public static void main(String[] args) 
    { 
    // schedule this for the event dispatch thread (edt) 
    SwingUtilities.invokeLater(new Runnable() 
    { 
     public void run() 
     { 
     displayJFrame(); 
     } 
    }); 
    } 
    static void displayJFrame() 
    { 
    frame = new JFrame("Our JButton listener example"); 

    // create our jbutton 
    final JButton showDialogButton = new JButton("Click Me"); 

    // add the listener to the jbutton to handle the "pressed" event 
    showDialogButton.addActionListener(new ActionListener() 
    { 
     public void actionPerformed(ActionEvent e) 
     { 
     // when the button is pressed 

      showDialogButton.setBackground(Color.RED); 
     } 
    }); 

    // put the button on the frame 
    frame.getContentPane().setLayout(new FlowLayout()); 
    frame.add(showDialogButton); 

    // set up the jframe, then display it 
    frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 
    frame.setPreferredSize(new Dimension(300, 200)); 
    frame.pack(); 
    frame.setLocationRelativeTo(null); 
    frame.setVisible(true); 
    } 

}

関連する問題