Java-worker
Grünschnabel
Hallo ich habe mehrere jpanels in den einstellungen vorgenohmen werden können für mein hauptprogramm, und ein panel wo mir ein wert immer aktualisiert in einem jlabel angezeigt werden soll, dieser ist aber immer fix, weil er nicht nochmal neuausgelesen wird um es hinzuschreiben. so wie kann ich nun mein code optimieren so dass er (um fehler vorzubeugen) beim jeden klick den jpanel aktualisiert?
vielen dank für die hilfe schon im voraus
mein code ausschnitt:
private JPanel getScaleSizeSlider()
{
JPanel panel = new JPanel(new GridLayout(3, 1));
JLabel label = new JLabel("Skalierungsgröße", SwingConstants.CENTER);
JTextField textField = new JTextField();
//textField.setColumns(6);
textField.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
JTextField source = (JTextField) e.getSource();
double value = 0.0d;
try {
value = Double.parseDouble(source.getText());
}
catch (NumberFormatException ex) {
value = scene.getSphereScale();
}
finally {
View view=scene.getCanvas().getView();
view.setScreenScale(value);
}
}
});
// MUSS AKTUALISIERT WERDEN NACH JEDEM MAUSKLICK
JLabel label2 = new JLabel("aktuelle Skalierungsgröße: " +scene.getCanvas().getView().getScreenScale(), SwingConstants.CENTER);
panel.add(label);
panel.add(textField);
panel.add(label2);
return panel;
}
und hier wird die veränderung meist stattgefunden:
private JPanel getZoomPanel()
{
JPanel panel = new JPanel(new GridLayout(1, 3));
JButton ZoomInButton = new JButton("Zoom +");
ZoomInButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event)
{
View view=scene.getCanvas().getView();
double screenScale= view.getScreenScale();
view.setScreenScale(screenScale+0.01) ;
//System.out.println("Scale: "+view.getScreenScale());
//update(view.getScreenScale());
}
});
JButton ZoomOutButton = new JButton("Zoom -");
ZoomOutButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event)
{
View view=scene.getCanvas().getView();
double screenScale= view.getScreenScale() ;
view.setScreenScale(screenScale-0.01);
//System.out.println("Scale: "+view.getScreenScale());
//update(view.getScreenScale());
}
});
JButton ResetButton = new JButton("Reset");
ResetButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event)
{
scene.destroy();
}
});
panel.add(ZoomInButton);
panel.add(ZoomOutButton);
panel.add(ResetButton);
return panel;
}
ich weiss dass es sehr einfach gehen muss mit einem mauslistener aber ich krieg den nicht eingebaut...



bitte um hilkfe und am besten mit einer kleinen erkärung für die zukunft
Lg Katja
vielen dank für die hilfe schon im voraus

mein code ausschnitt:
private JPanel getScaleSizeSlider()
{
JPanel panel = new JPanel(new GridLayout(3, 1));
JLabel label = new JLabel("Skalierungsgröße", SwingConstants.CENTER);
JTextField textField = new JTextField();
//textField.setColumns(6);
textField.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
JTextField source = (JTextField) e.getSource();
double value = 0.0d;
try {
value = Double.parseDouble(source.getText());
}
catch (NumberFormatException ex) {
value = scene.getSphereScale();
}
finally {
View view=scene.getCanvas().getView();
view.setScreenScale(value);
}
}
});
// MUSS AKTUALISIERT WERDEN NACH JEDEM MAUSKLICK
JLabel label2 = new JLabel("aktuelle Skalierungsgröße: " +scene.getCanvas().getView().getScreenScale(), SwingConstants.CENTER);
panel.add(label);
panel.add(textField);
panel.add(label2);
return panel;
}
und hier wird die veränderung meist stattgefunden:
private JPanel getZoomPanel()
{
JPanel panel = new JPanel(new GridLayout(1, 3));
JButton ZoomInButton = new JButton("Zoom +");
ZoomInButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event)
{
View view=scene.getCanvas().getView();
double screenScale= view.getScreenScale();
view.setScreenScale(screenScale+0.01) ;
//System.out.println("Scale: "+view.getScreenScale());
//update(view.getScreenScale());
}
});
JButton ZoomOutButton = new JButton("Zoom -");
ZoomOutButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event)
{
View view=scene.getCanvas().getView();
double screenScale= view.getScreenScale() ;
view.setScreenScale(screenScale-0.01);
//System.out.println("Scale: "+view.getScreenScale());
//update(view.getScreenScale());
}
});
JButton ResetButton = new JButton("Reset");
ResetButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event)
{
scene.destroy();
}
});
panel.add(ZoomInButton);
panel.add(ZoomOutButton);
panel.add(ResetButton);
return panel;
}
ich weiss dass es sehr einfach gehen muss mit einem mauslistener aber ich krieg den nicht eingebaut...




bitte um hilkfe und am besten mit einer kleinen erkärung für die zukunft

Lg Katja