G
Guest
Gast
Hi!
Wollte bei diesem Programm, dass aus 2 Klassen besteht im Menu eine Figur auswählen und diese zeichnen lassen.
( GeneralPath ist nur so zum üben, ich hätte auch gleich die Figur selbst zeichnen können. Die Scrollbars sollen später zum Einsatz kommen, also bitte auch nicht beachten.) Leider klappt die Auswahl nicht...weißt jemand warum???
Und die zweite Klasse:
Wollte bei diesem Programm, dass aus 2 Klassen besteht im Menu eine Figur auswählen und diese zeichnen lassen.
( GeneralPath ist nur so zum üben, ich hätte auch gleich die Figur selbst zeichnen können. Die Scrollbars sollen später zum Einsatz kommen, also bitte auch nicht beachten.) Leider klappt die Auswahl nicht...weißt jemand warum???
Code:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.geom.*;
public class Aufgabe2GUI extends JFrame
{
Scrollbar scroll1,scroll2;
int i=0;
int o=0;
MenuItem item1,item2;
Ellipse2D ellipse = new Ellipse2D.Float (30,30,70,50);
GeneralPath kreis = new GeneralPath (ellipse);
Rectangle2D rechteck = new Rectangle2D.Float (30,30,60,60);
GeneralPath quadrat = new GeneralPath (rechteck);
KlassePanel panelklasse = new KlassePanel(kreis,i,o);
public static void main (String[] args)
{
Aufgabe2GUI gui = new Aufgabe2GUI();
}
public Aufgabe2GUI()
{
super();
Container conti=getContentPane();
JPanel panel = new JPanel();
panel.setLayout (new BoxLayout (panel,BoxLayout.X_AXIS));
scroll1 = new Scrollbar (Scrollbar.HORIZONTAL,1,10,0,300);
scroll2 = new Scrollbar (Scrollbar.VERTICAL,1,10,0,150);
scroll1.addAdjustmentListener (new ValueListener());
scroll2.addAdjustmentListener (new ValueListener());
panel.add(panelklasse);
panel.add (scroll2);
rechteck = new Rectangle2D.Float (30,30,100,100);
conti.setLayout (new BoxLayout ( conti,BoxLayout.Y_AXIS));
conti.add (panel);
conti.add (scroll1);
MenuBar bar = new MenuBar();
Menu menu = new Menu ("Auswahl");
bar.add (menu);
MenuItem item1= new MenuItem ("Rechteck");
MenuItem item2 = new MenuItem ("Ellipse");
menu.add (item1);
menu.add (item2);
setMenuBar(bar);
MenuListener listener = new MenuListener();
item1.addActionListener (listener);
item2.addActionListener (listener);
pack();
setVisible(true);
}
class MenuListener implements ActionListener
{
public void actionPerformed (ActionEvent e)
{
if (e.getActionCommand() == "Ellipse")
panelklasse = new KlassePanel (kreis,i,o);
else if (e.getActionCommand() == "Rechteck")
panelklasse = new KlassePanel (quadrat,i,o);
}
}
}
Und die zweite Klasse:
Code:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.geom.*;
public class KlassePanel extends JPanel
{
GeneralPath objekt,objekt3;
int i=0;
int o=0;
Scrollbar scroll1,scroll2;
public KlassePanel(GeneralPath objekt3,int i,int o)
{
this.o=o;
this.i=i;
this.objekt =objekt3;
JPanel panel2 = new JPanel();
this.setBackground (Color.WHITE);
this.setPreferredSize (new Dimension (300,150));
}
public void paint (Graphics g)
{
Graphics2D g2 = (Graphics2D) g;
super.paint(g);
g2.draw (objekt);
}
}