Reputation: 832
Is it possible for me to set the text on JToggle button to "ON" if it is selected and if not, as "OFF"? I'm trying with this code:
if(togbut.isSelected()){
togbut.setText("ON");
}
else if(!togbut.isSelected()){
togbut.setText("OFF");
}
But it doesn't work. I use NetBeans 7.3.
Upvotes: 0
Views: 7919
Reputation: 1738
You need to add ItemListener
interface to the class, where you use your JToggleButton
. The implementation should like this:
public class MyClassThatUsesToggleButton implements ItemListener{
//
// some code
//
JToggleButton toggleButton;
public void itemStateChanged(ItemEvent e) {
if(e.getStateChange() == ItemEvent.SELECTED)
{
toggleButton.setText("On!");
totalGUI.setBackground(Color.green);
}
else
{
toggleButton.setText("Off");
totalGUI.setBackground(Color.red);
}
//
// some more code
//
}
Upvotes: 1
Reputation: 3005
Um Try this:
JToggleButton togbut = new JToggleButton("Click");
togbut.addItemListener(new ItemListener() {
public void itemStateChanged(ItemEvent ev) {
if(ev.getStateChange()==ItemEvent.SELECTED){
togbut.setText("ON");
} else if(ev.getStateChange()==ItemEvent.DESELECTED){
togbut.setText("OFF");
}
}
});
Upvotes: 2
Reputation: 39641
You have to attach an ItemListener
to that toggle button:
final JToggleButton togbut = new JToggleButton();
togbut.addItemListener(new ItemListener() {
@Override
public void itemStateChanged(ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
togbut.setText("ON");
} else {
togbut.setText("OFF");
}
}
});
Upvotes: 2
Reputation: 1533
Just add an action listener to your togbut:
togbut.AddActionListener(this);
And add your code in the ActionPerformed() method.
Also I don't think a JToggleButton can have other state than Selected
and !Selected
So you can changee your if structure to this:
if(togbut.isSelected()){
togbut.setText("ON");
} else {
togbut.setText("OFF");
}
Upvotes: 1
Reputation: 51445
Your code is almost correct.
It has to be put in the change listener of your toggle button.
toggleButton.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent event) {
if (toggleButton.isSelected()){
toggleButton.setText("ON");
} else {
toggleButton.setText("OFF");
}
}
});
Upvotes: 4