ich habe das gemacht aber wie kann ich das punkt bewegen auf die Ellipse wenn ich den Schieberegler bewege ?
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Event;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.KeyStroke;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class ellipse extends JFrame implements ChangeListener
{
double x = 100;
Leinwand meineLeinwand = new Leinwand();
JSlider meinSlider = new JSlider(0, 400, 0);
JPanel meinPanel = new JPanel(new BorderLayout());
public ellipse() {
super("Slider");
JMenuBar menubar = new JMenuBar();
JMenu menu1 = new JMenu("Edit");
JMenu menu2 = new JMenu("Gestaltung");
JMenu menu3 =createFileMenu();
menubar.add(menu3);
menubar.add(menu1);
menubar.add(menu2);
JMenuItem item1 = new JMenuItem("Copy");
JMenuItem item2 = new JMenuItem("Paste");
JMenuItem item3 = new JMenuItem("Delete");
menu1.add(item1);
menu1.add(item2);
menu1.addSeparator();
menu1.add(item3);
JMenu item4 = new JMenu("Ellipse_Farbe");
JMenu item5 = new JMenu("Hintergrund_Farbe");
JMenuItem item6 = new JMenuItem("Rot");
JMenuItem item7 = new JMenuItem("Gruen");
JMenuItem item8 = new JMenuItem("Blau");
item4.add(item6);item4.add(item7);item4.add(item8);
JMenuItem item9 = new JMenuItem("Rot");
JMenuItem item10 = new JMenuItem("Gruen");
JMenuItem item11 = new JMenuItem("Blau");
item5.add(item9);item5.add(item10);item5.add(item11);
menu2.add(item4);
menu2.add(item5);
setJMenuBar(menubar);
meineLeinwand.setSize(400, 400);
meineLeinwand.setForeground(Color.red);
meinSlider.addChangeListener(this);
meinPanel.add(meinSlider, BorderLayout.SOUTH);
meinPanel.add(meineLeinwand, BorderLayout.CENTER);
getContentPane().add(meinPanel);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBackground(Color.lightGray);
setSize(500, 500);
setLocation(400, 200);
setVisible(true);
}
public void stateChanged(ChangeEvent e) {
JSlider sl = (JSlider) e.getSource();
x = sl.getValue();
meineLeinwand.repaint(x);
}
public static void main(String[] args) {
new ellipse();
}
private JMenu createFileMenu() {
JMenu ret = new JMenu("Datei");
ret.setMnemonic('D');
JMenuItem mi;
//Öffnen
mi = new JMenuItem("Oeffnen", 'f');
setCtrlAccelerator(mi, 'O');
ret.add(mi);
//Speichern
mi = new JMenuItem("Speichern", 'p');
setCtrlAccelerator(mi, 'S');
ret.add(mi);
//Separator
ret.addSeparator();
//Beenden
mi = new JMenuItem("Beenden", 'e');
ret.add(mi);
return ret;
}
private void setCtrlAccelerator(JMenuItem mi, char acc) {
KeyStroke ks = KeyStroke.getKeyStroke(
acc, Event.CTRL_MASK );
mi.setAccelerator(ks);
}
private class Leinwand extends JPanel
{
double x;
public void paintComponent(Graphics g)
{
super.paintComponent(g);
g.setColor(Color.magenta);
g.fillOval((int)(this.getWidth()/2 -3 ), (int)((this.getHeight()/2 -3 - 25)-x/2), 6, 6);
g.setColor(Color.RED);
g.drawOval((int)((this.getWidth()/2 -50 )-x/2), (int)((this.getHeight()/2 -25)-x/2), (int) (100 + x), (int) (50 + x));
//g.fillOval((int)((this.getWidth()/2 -50)-x/2), (int)((this.getHeight()/2 -25)-x/2), (int) (100 + x), (int) (50 + x));
System.out.println(x);
//System.out.println(this.getWidth());
//System.out.println(this.getHeight());
}
public void repaint(double x)
{
this.x = x;
repaint();
System.out.println(x);
}
}
}