Noch ein Versuch:
Ich versuche die vertikale und die horizontale Scrollbar zu zentrieren.
Das klappt leider nicht wie ich denke. BoundedRangeModel hab ich bereits entdeckt, und irgendwie hat es was damit zu tun.
In dem Code versuche ich erstmal beide Scrollbars ans Ende zu setzen. Horizontal funktioniert es auch. Aber vertikal verhält es sich merkwürdig. Egal was ich bei setValue() setze, das Programm setzt das Value auf 90. Verstehe überhaupt nicht wiso.
Ich versuche die vertikale und die horizontale Scrollbar zu zentrieren.
Das klappt leider nicht wie ich denke. BoundedRangeModel hab ich bereits entdeckt, und irgendwie hat es was damit zu tun.
In dem Code versuche ich erstmal beide Scrollbars ans Ende zu setzen. Horizontal funktioniert es auch. Aber vertikal verhält es sich merkwürdig. Egal was ich bei setValue() setze, das Programm setzt das Value auf 90. Verstehe überhaupt nicht wiso.
Java:
import javax.swing.BoundedRangeModel;
import javax.swing.DefaultBoundedRangeModel;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import java.awt.Dimension;
import java.awt.Rectangle;
import javax.swing.JComboBox;
import java.awt.event.ItemEvent;
import javax.swing.JButton;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class Zoomer extends JFrame {
private static final long serialVersionUID = 1L;
private JPanel jContentPane = null;
private JScrollPane jScrollPane = null;
private JPanel jPanel = null;
private JPanel jPanel1 = null;
private JComboBox jComboBox = null;
private JScrollBar vert = null;
private JScrollBar hori = null;
private JButton jButton = null;
BoundedRangeModel mdlhori = new DefaultBoundedRangeModel();
BoundedRangeModel mdlvert = new DefaultBoundedRangeModel();
private JButton jButton1 = null;
/**
* This is the default constructor
*/
public Zoomer() {
super();
initialize();
}
/**
* This method initializes this
*
* @return void
*/
private void initialize() {
this.setSize(500, 500);
this.setContentPane(getJContentPane());
this.setTitle("Zoomer");
vert = jScrollPane.getVerticalScrollBar();
hori = jScrollPane.getHorizontalScrollBar();
mdlvert = vert.getModel();
mdlvert.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
System.out.println("Scrollposition Vertikal "
+ mdlvert.getValue());
}
});
mdlhori = hori.getModel();
mdlhori.addChangeListener(new ChangeListener() {
@Override
public void stateChanged(ChangeEvent e) {
System.out.println("Scrollposition Horizontal "
+ mdlhori.getValue());
}
});
mdlvert.setValue(mdlvert.getMaximum());
mdlhori.setValue(mdlhori.getMaximum());
}
/**
* This method initializes jContentPane
*
* @return javax.swing.JPanel
*/
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(null);
jContentPane.add(getJScrollPane(), null);
jContentPane.add(getJPanel1(), null);
}
return jContentPane;
}
/**
* This method initializes jScrollPane
*
* @return javax.swing.JScrollPane
*/
private JScrollPane getJScrollPane() {
if (jScrollPane == null) {
jScrollPane = new JScrollPane();
jScrollPane.setBounds(new Rectangle(2, 35, 474, 424));
jScrollPane.setViewportView(getJPanel());
}
return jScrollPane;
}
/**
* This method initializes jPanel
*
* @return javax.swing.JPanel
*/
private JPanel getJPanel() {
if (jPanel == null) {
jPanel = new JPanel();
jPanel.setLayout(null);
jPanel.setSize(800, 800);
jPanel.setPreferredSize(new Dimension(800, 800));
jPanel.add(getJButton(), null);
}
return jPanel;
}
/**
* This method initializes jPanel1
*
* @return javax.swing.JPanel
*/
private JPanel getJPanel1() {
if (jPanel1 == null) {
jPanel1 = new JPanel();
jPanel1.setLayout(null);
jPanel1.setBounds(new Rectangle(3, 4, 477, 28));
jPanel1.add(getJComboBox(), null);
jPanel1.add(getJButton1(), null);
}
return jPanel1;
}
/**
* This method initializes jComboBox
*
* @return javax.swing.JComboBox
*/
private JComboBox getJComboBox() {
if (jComboBox == null) {
jComboBox = new JComboBox();
jComboBox.setBounds(new Rectangle(1, 2, 215, 25));
jComboBox.addItem("100");
jComboBox.addItem("200");
jComboBox.addItem("300");
jComboBox.addItem("400");
jComboBox.addItem("500");
jComboBox.addItemListener(new java.awt.event.ItemListener() {
public void itemStateChanged(java.awt.event.ItemEvent e) {
if (e.getStateChange() == ItemEvent.SELECTED) {
int zoom = Integer.parseInt(jComboBox.getSelectedItem()
.toString()) / 100;
System.out.println("SetZoom x" + zoom);
jPanel.setSize(800 * zoom, 800 * zoom);
jPanel.setPreferredSize(new Dimension(800 * zoom,
800 * zoom));
jButton.setBounds(new Rectangle(400 * zoom, 400 * zoom,
10 * zoom, 10 * zoom));
}
}
});
}
return jComboBox;
}
/**
* This method initializes jButton
*
* @return javax.swing.JButton
*/
private JButton getJButton() {
if (jButton == null) {
jButton = new JButton();
jButton.setBounds(new Rectangle(400, 400, 10, 10));
}
return jButton;
}
/**
* This method initializes jButton1
*
* @return javax.swing.JButton
*/
private JButton getJButton1() {
if (jButton1 == null) {
jButton1 = new JButton();
jButton1.setBounds(new Rectangle(282, 6, 90, 16));
jButton1.setText("calc");
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent e) {
System.out.println("MaxVert = " + mdlvert.getMaximum());
System.out.println("MaxHori = " + mdlhori.getMaximum());
System.out.println("ExtentVert = " + mdlvert.getExtent());
System.out.println("ExtentHori = " + mdlhori.getExtent());
System.out.println("MinVert = " + mdlvert.getMinimum());
System.out.println("MinHori = " + mdlhori.getMinimum());
}
});
}
return jButton1;
}
}