Re: Layout Doesn't Work (was: jLabel setVisible(true) Doesn't Work)
Nice project thanks, but I have two questions:
(Q1) How can you either modify this code or create a different project to u=
se controls that were dragged to the JFrame from the swing Palette. The cod=
e is not to create the buttons, JFrame, JPanel, or JLabel.
I.E.:In Design View suppose you have a JFrame, jPanel1, jButton1, jButton2,=
and jLabel1 already on the Frame. They were dragged to the form. Your curr=
ent project did not create them. The buttons and label are in the jPanel. H=
ow would you make jLabel1 become invisible and invisible using two buttons.
(Q2) I noticed that int the below project the buttons move when one of the =
buttons is pressed. How can you stop that from happening.
On Tuesday, August 7, 2012 10:27:46 PM UTC-4, Jeff Higgins wrote:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
@SuppressWarnings("serial")
public class Scratch extends JPanel implements ActionListener {
private JButton vButton, iButton;
private JLabel label;
public Scratch() {
vButton = new JButton("Visible");
vButton.setMnemonic(KeyEvent.VK_D);
vButton.setToolTipText("Sets Label visible (true)");
vButton.setActionCommand("visible");
vButton.addActionListener(this);
vButton.setEnabled(false);
iButton = new JButton("Invisible");
iButton.setMnemonic(KeyEvent.VK_E);
iButton.setToolTipText("Sets Label visible (false)");
iButton.setActionCommand("invisible");
iButton.addActionListener(this);
label = new JLabel("Scratch");
add(vButton);
add(label);
add(iButton);
}
public void actionPerformed(ActionEvent e) {
if ("invisible".equals(e.getActionCommand())) {
label.setVisible(false);
vButton.setEnabled(true);
iButton.setEnabled(false);
} else {
label.setVisible(true);
vButton.setEnabled(false);
iButton.setEnabled(true);
}
}
private static void createAndShowGUI() {
JFrame frame = new JFrame("Scratch");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Scratch scratch = new Scratch();
frame.setContentPane(scratch);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}