bug6524424.java revision 627:85d71654a220
1/*
2 * Copyright 2008 Sun Microsystems, Inc.  All Rights Reserved.
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4 *
5 * This code is free software; you can redistribute it and/or modify it
6 * under the terms of the GNU General Public License version 2 only, as
7 * published by the Free Software Foundation.
8 *
9 * This code is distributed in the hope that it will be useful, but WITHOUT
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
11 * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
12 * version 2 for more details (a copy is included in the LICENSE file that
13 * accompanied this code).
14 *
15 * You should have received a copy of the GNU General Public License version
16 * 2 along with this work; if not, write to the Free Software Foundation,
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
18 *
19 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
20 * CA 95054 USA or visit www.sun.com if you need additional information or
21 * have any questions.
22 */
23
24/* @test
25 * @bug 6524424
26 * @summary JSlider Clicking In Tracks Behavior Inconsistent For Different Tick Spacings
27 * @author Pavel Porvatov
28 * @run applet/manual=done bug6524424.html
29 */
30
31import java.awt.*;
32import javax.swing.*;
33
34import com.sun.java.swing.plaf.windows.WindowsLookAndFeel;
35
36public class bug6524424 extends JApplet {
37    public static void main(String[] args) {
38        try {
39            UIManager.setLookAndFeel(new WindowsLookAndFeel());
40        } catch (UnsupportedLookAndFeelException e) {
41            e.printStackTrace();
42
43            return;
44        }
45
46        TestPanel panel = new TestPanel();
47
48        JFrame frame = new JFrame();
49
50        frame.setContentPane(panel);
51        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
52        frame.pack();
53        frame.setLocationRelativeTo(null);
54
55        frame.setVisible(true);
56    }
57
58    public void init() {
59        TestPanel panel = new TestPanel();
60
61        setContentPane(panel);
62    }
63
64    private static class TestPanel extends JPanel {
65
66        private TestPanel() {
67            super(new GridBagLayout());
68
69            JSlider slider1 = createSlider(1, 2);
70            JSlider slider2 = createSlider(2, 4);
71            JSlider slider3 = createSlider(3, 6);
72
73            addComponent(this, slider1);
74            addComponent(this, slider2);
75            addComponent(this, slider3);
76        }
77
78        private JSlider createSlider(int tickMinor, int tickMajor) {
79            JSlider result = new JSlider();
80
81            result.setPaintLabels(true);
82            result.setPaintTicks(true);
83            result.setSnapToTicks(true);
84            result.setMinimum(0);
85            result.setMaximum(12);
86            result.setMinorTickSpacing(tickMinor);
87            result.setMajorTickSpacing(tickMajor);
88
89            return result;
90        }
91    }
92
93    private static void addComponent(JPanel panel, Component component) {
94        panel.add(component, new GridBagConstraints(0,
95                panel.getComponentCount(), 1, 1,
96                1, 0, GridBagConstraints.NORTHWEST, GridBagConstraints.HORIZONTAL,
97                new Insets(0, 0, 0, 0), 0, 0));
98    }
99}
100