modify the code below so that two separate liseteners classes are usd import jav
ID: 3763062 • Letter: M
Question
modify the code below so that two separate liseteners classes are usd
import java.awt.*; import java.awt.event.*; import javax.swing.*; public class LeftRightPanel extends JPanel { private JButton left, right; private JLabel label; private JPanel buttonPanel;
public LeftRightPanel ()
{
left = new JButton ("Left");
right = new JButton ("Right");
ButtonListener listener = new ButtonListener();
left.addActionListener (listener);
right.addActionListener (listener);
label = new JLabel ("Push a button");
buttonPanel = new JPanel();
buttonPanel.setPreferredSize (new Dimension(200, 40));
buttonPanel.setBackground (Color.blue);
buttonPanel.add (left);
buttonPanel.add (right);
setPreferredSize (new Dimension(200, 80));
setBackground (Color.cyan);
add (label);
add (buttonPanel);
}
private class ButtonListener implements ActionListener
{
//--------------------------------------------------------------
// Determines which button was pressed and sets the label
// text accordingly.
//--------------------------------------------------------------
public void actionPerformed (ActionEvent event)
{
if (event.getSource() == left)
label.setText("Left");
else
label.setText("Right");
}
}
}
Explanation / Answer
package graphics;
//*******************************************************************
// Demonstrates the use of one listener for multiple buttons.
//*******************************************************************
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class LeftRightPanel extends JPanel {
private static final long serialVersionUID = 1L;
private JButton left, right;
private JLabel label;
private JPanel buttonPanel;
//----------------------------------------------------------------
// Constructor: Sets up the GUI.
//----------------------------------------------------------------
public LeftRightPanel () {
left = new JButton ("Left");
right = new JButton ("Right");
ButtonListener listener = new ButtonListener();
left.addActionListener (listener);
right.addActionListener (listener);
label = new JLabel ("Push a button");
buttonPanel = new JPanel();
buttonPanel.setPreferredSize (new Dimension(200, 40));
buttonPanel.setBackground (Color.blue);
buttonPanel.add (left);
buttonPanel.add (right);
setPreferredSize (new Dimension(200, 80));
setBackground (Color.cyan);
add (label);
add (buttonPanel);
}
//****************************************************************
// Represents a listener for both buttons.
//****************************************************************
private class ButtonListener implements ActionListener {
//-------------------------------------------------------------
// Determines which button was pressed and sets the label
// text accordingly.
//-------------------------------------------------------------
public void actionPerformed (ActionEvent event)
{
if (event.getSource() == left)
label.setText("Left Button Pressed");
else
label.setText("Right Button Pressed");
}
}
}
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.