--- /dev/null
+package test;
+
+//web_Ready
+//web_AppletName= MyTest1
+//web_Description= A test
+//web_JavaVersion= http://www.dmitry
+//web_AppletImage= dddd
+//web_Category= test
+//web_Date= $Date$
+//web_Features= graphics, AWT-to-Swing
+
+import java.awt.Adjustable;
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.event.ActionEvent;
+import java.awt.event.AdjustmentEvent;
+import java.awt.event.AdjustmentListener;
+import java.awt.event.FocusEvent;
+import java.awt.event.FocusListener;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.awt.event.MouseMotionListener;
+import java.awt.event.MouseWheelEvent;
+import java.awt.event.MouseWheelListener;
+import java.text.DecimalFormat;
+
+import javax.swing.ButtonGroup;
+import javax.swing.JApplet;
+import javax.swing.JComponent;
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JScrollBar;
+import javax.swing.JScrollPane;
+import javax.swing.JSlider;
+import javax.swing.JTextField;
+import javax.swing.JToggleButton;
+import javax.swing.JViewport;
+import javax.swing.SwingConstants;
+import javax.swing.event.ChangeEvent;
+import javax.swing.event.ChangeListener;
+import javax.swing.plaf.ViewportUI;
+
+public class Test_Applet_Scroll extends JApplet implements ChangeListener {
+
+ static {MouseEvent m;
+ /**
+ * @j2sNative
+ *
+ * thisApplet.__Info.width = 500;
+ * thisApplet.__Info.height = 400;
+ * thisApplet.__Info.isResizable = true;
+ */
+ }
+ static DecimalFormat df = new DecimalFormat("0.00");
+
+ boolean preferred = true;
+
+ private JScrollBar hsb;
+
+ private JScrollBar sbar;
+
+ void setSize(JComponent c, int x, int y) {
+ if (preferred)
+ c.setPreferredSize(new Dimension(x, y));
+ else
+ c.setSize(x, y);
+ }
+
+ @Override
+ public void init() {
+
+ final JLabel label = new JLabel("hello");
+ // label.setBounds(0, 60, 200, 60);
+ setSize(label, 80, 50);
+ label.setBackground(Color.yellow);
+ label.setForeground(Color.BLUE);
+ label.setOpaque(true);
+ label.setHorizontalAlignment(SwingConstants.RIGHT);
+ label.setVerticalAlignment(SwingConstants.CENTER);
+
+ final JTextField tf = new JTextField("12.5", 8);
+ tf.setBackground(Color.black);
+ tf.setForeground(Color.yellow);
+ tf.setOpaque(true);
+ setSize(tf, 80, 40);
+ tf.addActionListener(new java.awt.event.ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent event) {
+ label.setBackground(Color.white);
+ label.setText(tf.getText());
+ // repaint();
+ }
+ });
+ tf.addFocusListener(new FocusListener() {
+
+ @Override
+ public void focusGained(FocusEvent e) {
+ tf.setBackground(Color.BLUE);
+ }
+
+ @Override
+ public void focusLost(FocusEvent e) {
+ tf.setBackground(Color.BLACK);
+ }
+
+ });
+ tf.addMouseWheelListener(new MouseWheelListener() {
+ @Override
+ public void mouseWheelMoved(MouseWheelEvent e) {
+ int n = e.getWheelRotation();
+ tf.setText("" + (Float.parseFloat(tf.getText()) + n));
+ // e.consume(); not necessary for scrollbars
+ }
+ });
+ final JToggleButton button = new JToggleButton("test");
+ setSize(button, 80, 20);
+ button.setBackground(Color.orange);
+ button.addActionListener(new java.awt.event.ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent event) {
+ label.setBackground(button.isSelected() ? Color.green : Color.yellow);
+ tf.setBackground(Color.black);
+ label.setText("test");
+ // repaint();
+ }
+ });
+ final JToggleButton button2 = new JToggleButton("btn2");
+ button2.addMouseListener(new MouseListener() {
+
+ @Override
+ public void mouseClicked(MouseEvent e) {
+
+ System.out.println("BTN2 clicked " + e.getClickCount());
+
+ }
+
+ @Override
+ public void mousePressed(MouseEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void mouseReleased(MouseEvent e) {
+ System.out.println("BTN2 released");
+
+ }
+
+ @Override
+ public void mouseEntered(MouseEvent e) {
+ System.out.println("in button2");
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void mouseExited(MouseEvent e) {
+ System.out.println("out button2");
+
+ }
+
+ });
+ // BasicToggleButtonUI us; just using this to get access to code for
+ // BasicToggleButtonUI
+ setSize(button2, 80, 20);
+ button2.setBackground(Color.orange);
+ button2.addActionListener(new java.awt.event.ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent event) {
+ label.setBackground(button2.isSelected() ? Color.green : Color.yellow);
+ tf.setBackground(Color.green);
+ label.setText("btn2");
+ // repaint();
+ }
+ });
+
+ button2.addMouseMotionListener(new MouseMotionListener() {
+
+ @Override
+ public void mouseDragged(MouseEvent e) {
+ System.out.println("btn2 DRAG " + e);
+ }
+
+ @Override
+ public void mouseMoved(MouseEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+
+ });
+
+ // the first two buttons act like radio buttons; only one is ever ON
+
+ ButtonGroup bg = new ButtonGroup();
+ bg.add(button);
+ bg.add(button2);
+
+ // the third button is not part of the group
+ // note that JButtonUI does not need to know anything about the groups
+
+ final JToggleButton button3 = new JToggleButton("btn3");
+ // BasicToggleButtonUI us; just using this to get access to code for
+ // BasicToggleButtonUI
+ setSize(button3, 80, 20);
+ button3.setBackground(Color.red);
+ button3.addActionListener(new java.awt.event.ActionListener() {
+ @Override
+ public void actionPerformed(ActionEvent event) {
+ label.setBackground(button3.isSelected() ? Color.green : Color.yellow);
+ tf.setBackground(Color.black);
+ label.setText("btn3");
+ // repaint();
+ }
+ });
+
+ JPanel p = new JPanel();
+
+ p.addMouseListener(new MouseListener() {
+
+ @Override
+ public void mouseClicked(MouseEvent e) {
+
+ System.out.println("PANEL clicked " + e.getClickCount());
+
+
+ }
+
+ @Override
+ public void mousePressed(MouseEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void mouseReleased(MouseEvent e) {
+ // TODO Auto-generated method stub
+
+ }
+
+ @Override
+ public void mouseEntered(MouseEvent e) {
+ // TODO Auto-generated method stub
+
+ System.out.println("in panel");
+
+ }
+
+ @Override
+ public void mouseExited(MouseEvent e) {
+ // TODO Auto-generated method stub
+
+ System.out.println("out panel");
+ }
+
+
+ });
+
+
+ p.addMouseMotionListener(new MouseMotionListener() {
+
+ @Override
+ public void mouseDragged(MouseEvent e) {
+ System.out.println("panel DRAG " + e);
+ }
+
+ @Override
+ public void mouseMoved(MouseEvent e) {
+ System.out.println("panel Move " + e);
+
+ }
+
+ });
+
+ p.setToolTipText("this is the panel");
+ // p.setLayout(new GridLayout(2, 2, 2, 2));
+ JScrollPane sp = new JScrollPane();
+ sp.getViewport().add(p);
+ getContentPane().add(sp);
+ sp.getViewport().addChangeListener(this);
+ hsb = sp.getHorizontalScrollBar();
+ button2.setToolTipText("this is hsb");
+
+ mkBar(p, tf, Adjustable.VERTICAL, 20, 200).setToolTipText("this is scrollbar 1");
+ mkSlider(p, tf, Adjustable.VERTICAL, 20, 200).setToolTipText("this is slider 2");
+
+ mkSlider(p, tf, Adjustable.VERTICAL, 20, 200).setInverted(true);
+ p.add(label);
+ label.setToolTipText("this is label");
+ p.add(tf);
+ tf.setToolTipText("this is tf");
+ p.add(button);
+ p.add(button2);
+ p.add(button3);
+ p.setBackground(Color.blue);
+ button2.setToolTipText("this is Button 2");
+ button3.setToolTipText("this is Button 3");
+ mkBar(p, tf, Adjustable.HORIZONTAL, 100, 20);
+ mkSlider(p, tf, Adjustable.HORIZONTAL, 100, 20);
+ mkSlider(p, tf, Adjustable.HORIZONTAL, 100, 20).setInverted(true);
+ repaint();
+ }
+
+ JScrollBar mkBar(JPanel p, final JTextField tf, int orient, int x, int y) {
+ final JScrollBar bar = new JScrollBar(orient, 500, 10, 300, 1000);
+ bar.addAdjustmentListener(new AdjustmentListener() {
+
+ @Override
+ public void adjustmentValueChanged(AdjustmentEvent e) {
+ tf.setText(df.format(e.getValue() / 100.0));
+ }
+
+ });
+ bar.addMouseWheelListener(new MouseWheelListener() {
+ @Override
+ public void mouseWheelMoved(MouseWheelEvent e) {
+ int n = e.getWheelRotation();
+ bar.setValue(bar.getValue() + n * 5);
+ // e.consume(); not necessary for scrollbars
+ }
+ });
+ setSize(bar, x, y);
+ bar.setBackground(Color.orange);
+ bar.setForeground(Color.green);
+ bar.setOpaque(true);
+ p.add(bar);
+ sbar = bar;
+ bar.setVisibleAmount(80);
+ return bar;
+ }
+
+ JSlider mkSlider(JPanel p, final JTextField tf, int orient, int x, int y) {
+ final JSlider bar = new JSlider(orient, 300, 1000, 500);
+ bar.addChangeListener(new ChangeListener() {
+ @Override
+ public void stateChanged(ChangeEvent e) {
+ tf.setText(df.format(((JSlider) e.getSource()).getValue() / 100.0));
+ }
+ });
+ bar.addMouseWheelListener(new MouseWheelListener() {
+ @Override
+ public void mouseWheelMoved(MouseWheelEvent e) {
+ int n = e.getWheelRotation();
+ bar.setValue(bar.getValue() + n * 5);
+ // e.consume(); not necessary for sliders
+ }
+ });
+ setSize(bar, x, y);
+ bar.setBackground(Color.orange);
+ bar.setForeground(Color.green);
+ bar.setOpaque(true);
+ p.add(bar);
+ return bar;
+ }
+
+ @Override
+ public void stateChanged(ChangeEvent e) {
+ // Viewport has scrolled
+// JViewport v = (JViewport) e.getSource();
+// System.out.println("extent " +v.getExtentSize() + " " + v.getViewPosition());
+// if (v.getViewRect().x > 0)
+// System.out.println("view change: " + v.getViewRect());
+// System.out.println(v.getWidth() + " " + v.getHeight() + " " + v.getView().getBounds());
+// System.out.println(sbar.getValue() + " "+ sbar.getVisibleAmount() + " " + sbar.getMaximum());
+
+ }
+
+}