The Artima Developer Community
Sponsored Link

Legacy Java Answers Forum
November 2001

Advertisement

Advertisement

This page contains an archived post to the Java Answers Forum made prior to February 25, 2002. If you wish to participate in discussions, please visit the new Artima Forums.

Message:

Are you kiddin?

Posted by Jay on November 09, 2001 at 9:06 PM

JButton does not directly provide a method like isPressed(), nor it implements ButtonModel but its parent AbstractButton has a ButtonModel which determines the button state. (This is an implementation of Model-View-Controller design pattern)

Anyways, heres the code you asked for.


import javax.swing.JFrame;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.event.ChangeListener;
import javax.swing.event.ChangeEvent;
import java.awt.BorderLayout;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;

public class Test extends JFrame implements ChangeListener
{
JButton button;
JLabel status;
JPanel panel;

public Test()
{
panel = new JPanel();
status = new JLabel( "Button is NOT pressed" );
button = new JButton("Press me");
button.setActionCommand("press");

button.addChangeListener(this);

panel.setLayout( new BorderLayout() );
panel.add(button, BorderLayout.CENTER);
panel.add(status, BorderLayout.SOUTH);

getContentPane().add(panel);

addWindowListener(
new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
);

setSize(200, 200);
show();
}

public void stateChanged(ChangeEvent e)
{
JButton b = (JButton)e.getSource();
if(b.getModel().isPressed())
{
button.setText( "Leave me alone!" );
status.setText( "Button is pressed" );
}
else
{
button.setText( "Press me" );
status.setText( "Button is NOT pressed" );
}
}

public static void main(String s[])
{
new Test();
}
}





Replies:

Sponsored Links



Google
  Web Artima.com   
Copyright © 1996-2009 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use - Advertise with Us