Setting a component orientation in JRSUI (original) (raw)
Alexander Scherbatiy alexandr.scherbatiy at oracle.com
Wed Jan 22 15:23:00 UTC 2014
- Previous message: [8] Review request for 8032063 Exposing non public API by javax.swing.plaf.metal.MetalFileChooserUI$FilterComboBoxModel
- Next message: JDK 9 RFR of 8032627: Add @SuppressWarnings("serial") to appropriate javax.swing classes
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Hello,
Below is the code that shows that setting a component orientation for the JProgressBar in Aqua L&F does not work.
My assumption was that the Direction should be properly set to the painter state in the AquaProgressBarUI like:
public void paint(final Graphics g, final JComponent c) {
...
painter.state.set(c.getComponentOrientation().isLeftToRight() ?
Direction.RIGHT : Direction.LEFT); }
but it does not work.
The painter calls the JRSUI library to show components on Mac OS X.
Is there any specification for the JRSUI library? What is the right way to set the component direction in the JRSUI.
Thanks, Alexandr.
------------------ Code Sample ---------- import java.awt.; import java.awt.event.; import javax.swing.*;
public class JProgressBarOrientationTest {
static boolean leftToRight = true;
public static void main(String[] args) throws Exception {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame frame = new JFrame();
frame.setSize(300, 200);
final JProgressBar progressBar = new JProgressBar(0, 100);
progressBar.setValue(30);
progressBar.setComponentOrientation(ComponentOrientation.LEFT_TO_RIGHT);
JButton button = new JButton("Change orientation");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
leftToRight = !leftToRight;
progressBar.setComponentOrientation(leftToRight ? ComponentOrientation.LEFT_TO_RIGHT : ComponentOrientation.RIGHT_TO_LEFT); } });
JPanel panel = new JPanel(new BorderLayout());
panel.add(progressBar, BorderLayout.CENTER);
panel.add(button, BorderLayout.SOUTH);
frame.getContentPane().add(panel);
frame.setVisible(true);
}
});
}
}
- Previous message: [8] Review request for 8032063 Exposing non public API by javax.swing.plaf.metal.MetalFileChooserUI$FilterComboBoxModel
- Next message: JDK 9 RFR of 8032627: Add @SuppressWarnings("serial") to appropriate javax.swing classes
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]