-
Bug
-
Resolution: Fixed
-
P3
-
1.3.0
-
rc2
-
x86, sparc
-
solaris_7, windows_95, windows_nt
-
Verified
As demontrated in the following program; use the JCheckbox at the bottom
left of the frame to toggle the opacity value for the displayed components.
Only JToggleButton's setOpaque() when set to false doesn't let the underlying
pixels to show through.
The setOpaque() works fine for components that extends JComponent such as
the JLabel, JButton, JSlider, JTextField, JTextArea ...
This function and this program works for JDK1.2
Roger Pham 2/17/2000
--------------------------------------------------------------------------------
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class Opaque extends JFrame implements ChangeListener {
JCheckBox jcb = new JCheckBox("set Opaque", true);
JLabel redLabel = new JLabel("Red Label");
JLabel blueLabel = new JLabel("Blue Label");
JButton button = new JButton("Button");
JToggleButton redButton = new JToggleButton("Red Button");
JToggleButton blueButton = new JToggleButton("Blue Button");
JTextArea textarea = new JTextArea("Hello There!");
JTextField textfield = new JTextField("Hello World!");
JSlider slider = new JSlider();
JRadioButton radio = new JRadioButton("radio");
public Opaque() {
Container c = getContentPane();
JPanel p = new JPanel();
p.setLayout(null);
p.setBackground(Color.yellow);
c.add(p);
System.out.println("redLabel initial Opacity = " + redLabel.isOpaque());
System.out.println("blueLabel initial Opacity = " + blueLabel.isOpaque());
System.out.println("Button initial Opacity = " + button.isOpaque());
System.out.println("redButton initial Opacity = " + redButton.isOpaque());
System.out.println("blueButton initial Opacity = " + blueButton.isOpaque());
System.out.println("textarea initial Opacity = " + textarea.isOpaque());
System.out.println("textfield initial Opacity = " + textfield.isOpaque());
System.out.println("slider initial Opacity = " + slider.isOpaque());
System.out.println("radio initial Opacity = " + radio.isOpaque());
p.add(redLabel);
p.add(blueLabel);
p.add(button);
p.add(redButton);
p.add(blueButton);
p.add(textarea);
p.add(textfield);
p.add(slider);
p.add(radio);
p.add(jcb);
button.setOpaque(true);
redButton.setOpaque(true);
blueButton.setOpaque(true);
textarea.setOpaque(true);
textfield.setOpaque(true);
slider.setOpaque(true);
radio.setOpaque(true);
redLabel.setOpaque(true);
blueLabel.setOpaque(true);
redLabel.setBackground(Color.red);
blueLabel.setBackground(Color.blue);
button.setBackground(Color.pink);
redButton.setBackground(Color.red);
blueButton.setBackground(Color.blue);
textarea.setBackground(Color.white);
textfield.setBackground(Color.white);
slider.setBackground(Color.orange);
radio.setBackground(Color.orange);
redLabel.setBounds(10, 10, 100, 100);
blueLabel.setBounds(50, 50, 100, 100);
button.setBounds(320, 10, 100, 50);
redButton.setBounds(180, 10, 100, 50);
blueButton.setBounds(200, 20, 100, 50);
textarea.setBounds(200, 80, 100, 50);
textfield.setBounds(200, 140, 100, 50);
slider.setBounds(200, 200, 100, 50);
radio.setBounds(200, 260, 100, 50);
jcb.addChangeListener(this);
jcb.setBounds(10, 420, 100, 50);
}
public static void main(String argv[]) {
JFrame frame = new Opaque();
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we) {
System.exit(0);
}
});
frame.pack();
frame.setSize(500, 500);
frame.setVisible(true);
}
public void stateChanged(ChangeEvent e) {
redLabel.setOpaque(jcb.isSelected());
blueLabel.setOpaque(jcb.isSelected());
button.setOpaque(jcb.isSelected());
redButton.setOpaque(jcb.isSelected());
blueButton.setOpaque(jcb.isSelected());
textarea.setOpaque(jcb.isSelected());
textfield.setOpaque(jcb.isSelected());
slider.setOpaque(jcb.isSelected());
radio.setOpaque(jcb.isSelected());
jcb.setOpaque(jcb.isSelected());
redLabel.repaint();
blueLabel.repaint();
button.repaint();
redButton.repaint();
blueButton.repaint();
textarea.repaint();
textfield.repaint();
slider.repaint();
radio.repaint();
jcb.repaint();
System.out.println("redLabel Opacity = " + redLabel.isOpaque());
System.out.println("blueLabel Opacity = " + blueLabel.isOpaque());
System.out.println("button Opacity = " + redButton.isOpaque());
System.out.println("redButton Opacity = " + redButton.isOpaque());
System.out.println("blueButton Opacity = " + blueButton.isOpaque());
System.out.println("textarea Opacity = " + textarea.isOpaque());
System.out.println("textfield Opacity = " + textfield.isOpaque());
System.out.println("slider Opacity = " + slider.isOpaque());
System.out.println("radio Opacity = " + radio.isOpaque());
}
}
left of the frame to toggle the opacity value for the displayed components.
Only JToggleButton's setOpaque() when set to false doesn't let the underlying
pixels to show through.
The setOpaque() works fine for components that extends JComponent such as
the JLabel, JButton, JSlider, JTextField, JTextArea ...
This function and this program works for JDK1.2
Roger Pham 2/17/2000
--------------------------------------------------------------------------------
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class Opaque extends JFrame implements ChangeListener {
JCheckBox jcb = new JCheckBox("set Opaque", true);
JLabel redLabel = new JLabel("Red Label");
JLabel blueLabel = new JLabel("Blue Label");
JButton button = new JButton("Button");
JToggleButton redButton = new JToggleButton("Red Button");
JToggleButton blueButton = new JToggleButton("Blue Button");
JTextArea textarea = new JTextArea("Hello There!");
JTextField textfield = new JTextField("Hello World!");
JSlider slider = new JSlider();
JRadioButton radio = new JRadioButton("radio");
public Opaque() {
Container c = getContentPane();
JPanel p = new JPanel();
p.setLayout(null);
p.setBackground(Color.yellow);
c.add(p);
System.out.println("redLabel initial Opacity = " + redLabel.isOpaque());
System.out.println("blueLabel initial Opacity = " + blueLabel.isOpaque());
System.out.println("Button initial Opacity = " + button.isOpaque());
System.out.println("redButton initial Opacity = " + redButton.isOpaque());
System.out.println("blueButton initial Opacity = " + blueButton.isOpaque());
System.out.println("textarea initial Opacity = " + textarea.isOpaque());
System.out.println("textfield initial Opacity = " + textfield.isOpaque());
System.out.println("slider initial Opacity = " + slider.isOpaque());
System.out.println("radio initial Opacity = " + radio.isOpaque());
p.add(redLabel);
p.add(blueLabel);
p.add(button);
p.add(redButton);
p.add(blueButton);
p.add(textarea);
p.add(textfield);
p.add(slider);
p.add(radio);
p.add(jcb);
button.setOpaque(true);
redButton.setOpaque(true);
blueButton.setOpaque(true);
textarea.setOpaque(true);
textfield.setOpaque(true);
slider.setOpaque(true);
radio.setOpaque(true);
redLabel.setOpaque(true);
blueLabel.setOpaque(true);
redLabel.setBackground(Color.red);
blueLabel.setBackground(Color.blue);
button.setBackground(Color.pink);
redButton.setBackground(Color.red);
blueButton.setBackground(Color.blue);
textarea.setBackground(Color.white);
textfield.setBackground(Color.white);
slider.setBackground(Color.orange);
radio.setBackground(Color.orange);
redLabel.setBounds(10, 10, 100, 100);
blueLabel.setBounds(50, 50, 100, 100);
button.setBounds(320, 10, 100, 50);
redButton.setBounds(180, 10, 100, 50);
blueButton.setBounds(200, 20, 100, 50);
textarea.setBounds(200, 80, 100, 50);
textfield.setBounds(200, 140, 100, 50);
slider.setBounds(200, 200, 100, 50);
radio.setBounds(200, 260, 100, 50);
jcb.addChangeListener(this);
jcb.setBounds(10, 420, 100, 50);
}
public static void main(String argv[]) {
JFrame frame = new Opaque();
frame.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent we) {
System.exit(0);
}
});
frame.pack();
frame.setSize(500, 500);
frame.setVisible(true);
}
public void stateChanged(ChangeEvent e) {
redLabel.setOpaque(jcb.isSelected());
blueLabel.setOpaque(jcb.isSelected());
button.setOpaque(jcb.isSelected());
redButton.setOpaque(jcb.isSelected());
blueButton.setOpaque(jcb.isSelected());
textarea.setOpaque(jcb.isSelected());
textfield.setOpaque(jcb.isSelected());
slider.setOpaque(jcb.isSelected());
radio.setOpaque(jcb.isSelected());
jcb.setOpaque(jcb.isSelected());
redLabel.repaint();
blueLabel.repaint();
button.repaint();
redButton.repaint();
blueButton.repaint();
textarea.repaint();
textfield.repaint();
slider.repaint();
radio.repaint();
jcb.repaint();
System.out.println("redLabel Opacity = " + redLabel.isOpaque());
System.out.println("blueLabel Opacity = " + blueLabel.isOpaque());
System.out.println("button Opacity = " + redButton.isOpaque());
System.out.println("redButton Opacity = " + redButton.isOpaque());
System.out.println("blueButton Opacity = " + blueButton.isOpaque());
System.out.println("textarea Opacity = " + textarea.isOpaque());
System.out.println("textfield Opacity = " + textfield.isOpaque());
System.out.println("slider Opacity = " + slider.isOpaque());
System.out.println("radio Opacity = " + radio.isOpaque());
}
}
- duplicates
-
JDK-4314192 BasicToggleButtonUI prob -> JToggleButton ignores setOpaque() when not selected
-
- Closed
-
- relates to
-
JDK-4314680 JScrollPane fails to display the background behind a transparent image
-
- Closed
-