package geo;
/*
* Geometrie.java
*/
//import basics.GUI;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
public class Geometrie {
private static Zeichenflaeche zeichenflaeche;
public static void main(String[] args) {
GUI gui = new GUI();
Menu m = new Menu("Menu");
JMenuBar bar = new JMenuBar();
bar.add(m);
gui.init();
gui.setJMenuBar(bar);
final Panel1 panel1 = new Panel1();
final Panel2 panel2 = new Panel2();
final Panel3 panel3 = new Panel3();
final Panel4 panel4 = new Panel4();
final JPanel p1 = panel1.createPanel(1);
final JPanel p2 = panel2.createPanel(2);
final JPanel p3 = panel3.createPanel(3);
final JPanel p4 = panel4.createPanel();
gui.add(p1);
gui.add(p2);
gui.add(p3);
gui.add(p4);
zeichenflaeche = new Zeichenflaeche();
gui.add(zeichenflaeche);
gui.setVisible(true);
m.jmi_TQuadraht.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
p1.setVisible(true);
p1.setBorder(BorderFactory.createTitledBorder("Diagonale"));
p2.setVisible(true);
p2.setBorder(BorderFactory.createTitledBorder("Flächeninhalt"));
p3.setVisible(true);
p3.setBorder(BorderFactory.createTitledBorder("Umfang"));
panel1.jtf_Zahl1.setVisible(true);
panel1.jtf_Zahl2.setVisible(false);
panel1.jtf_Zahl3.setVisible(false);
panel1.jtf_Zahl4.setVisible(false);
panel1.jl_Zahl1.setText("Seite A");
panel1.jl_Zahl1.setVisible(true);
panel1.jl_Zahl2.setVisible(false);
panel1.jl_Zahl3.setVisible(false);
panel1.jl_Zahl4.setVisible(false);
panel2.jtf_Zahl1.setVisible(true);
panel2.jtf_Zahl2.setVisible(false);
panel2.jtf_Zahl3.setVisible(false);
panel2.jtf_Zahl4.setVisible(false);
panel2.jl_Zahl1.setText("Seite A");
panel2.jl_Zahl1.setVisible(true);
panel2.jl_Zahl2.setVisible(false);
panel2.jl_Zahl3.setVisible(false);
panel2.jl_Zahl4.setVisible(false);
panel3.jtf_Zahl1.setVisible(true);
panel3.jtf_Zahl2.setVisible(false);
panel3.jtf_Zahl3.setVisible(false);
panel3.jtf_Zahl4.setVisible(false);
panel3.jl_Zahl1.setText("Seite A");
panel3.jl_Zahl1.setVisible(true);
panel3.jl_Zahl2.setVisible(false);
panel3.jl_Zahl3.setVisible(false);
panel3.jl_Zahl4.setVisible(false);
panel1.option = "Quadraht_Diagonale";
panel2.option = "Quadraht_Flächeninhalt";
panel3.option = "Quadraht_Umfang";
zeichenflaeche.option = "Quadrat";
zeichenflaeche.repaint();
}
});
m.jmi_TRechteck.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
p1.setVisible(true);
p1.setBorder(BorderFactory.createTitledBorder("Flächeninhalt"));
p2.setVisible(true);
p2.setBorder(BorderFactory.createTitledBorder("Umfang"));
p3.setVisible(true);
p3.setBorder(BorderFactory.createTitledBorder("Diagonale"));
panel1.jtf_Zahl1.setVisible(true);
panel1.jtf_Zahl2.setVisible(true);
panel1.jtf_Zahl3.setVisible(false);
panel1.jtf_Zahl4.setVisible(false);
panel1.jl_Zahl1.setText("Seite A");
panel1.jl_Zahl2.setText("Seite B");
panel1.jl_Zahl1.setVisible(true);
panel1.jl_Zahl2.setVisible(true);
panel1.jl_Zahl3.setVisible(false);
panel1.jl_Zahl4.setVisible(false);
panel2.jtf_Zahl1.setVisible(true);
panel2.jtf_Zahl2.setVisible(true);
panel2.jtf_Zahl3.setVisible(false);
panel2.jtf_Zahl4.setVisible(false);
panel2.jl_Zahl1.setText("Seite A");
panel1.jl_Zahl2.setText("Seite B");
panel2.jl_Zahl1.setVisible(true);
panel2.jl_Zahl2.setVisible(true);
panel2.jl_Zahl3.setVisible(false);
panel2.jl_Zahl4.setVisible(false);
panel3.jtf_Zahl1.setVisible(true);
panel3.jtf_Zahl2.setVisible(true);
panel3.jtf_Zahl3.setVisible(false);
panel3.jtf_Zahl4.setVisible(false);
panel3.jl_Zahl1.setText("Seite A");
panel1.jl_Zahl2.setText("Seite B");
panel3.jl_Zahl1.setVisible(true);
panel3.jl_Zahl2.setVisible(true);
panel3.jl_Zahl3.setVisible(false);
panel3.jl_Zahl4.setVisible(false);
zeichenflaeche.setMethod("Rechteck");
System.out.println("Aktuelle Methode: "+zeichenflaeche.getMethod());
zeichenflaeche.repaint();
}
});
}
}
class Panel4 {
private JPanel jp_Links;
public static Zeichenflaeche zeichenflaeche;
JPanel createPanel() {
zeichenflaeche = new Zeichenflaeche();
zeichenflaeche.setBounds(5, 15, 190, 271);
jp_Links = new JPanel();
jp_Links.add(zeichenflaeche);
jp_Links.setLayout(null);
jp_Links.setVisible(true);
jp_Links.setBorder(BorderFactory.createTitledBorder("Skizze"));
jp_Links.setBounds(300, 350, 200, 290);
return jp_Links;
}
}
class Zeichenflaeche extends JPanel {
private static final long serialVersionUID = 1L;
public String option = "";
public Zeichenflaeche() {
super();
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
this.setBackground(Color.GRAY);
System.out.println("Ich male jetzt: " + option);
if (option.equals("Quadrat")) {
int x = getSize().width / 2;
int y = getSize().height / 2;
g.setColor(Color.black);
g.drawLine(x - 60, y - 60, x + 60, y - 60);
g.drawLine(x + 60, y - 60, x + 60, y + 60);
g.drawLine(x + 60, y + 60, x - 60, y + 60);
g.drawLine(x - 60, y + 60, x - 60, y - 60);
g.drawString("a", x, y - 62);
g.drawString("a", x, y + 70);
g.drawString("a", x - 70, y);
g.drawString("a", x + 62, y);
g.setColor(Color.red);
g.drawLine(x - 60, y - 60, x + 60, y + 60);
g.drawString("e", x + 1, y);
System.out.println("Quadrat gemalt");
}
if (option.equalsIgnoreCase("Rechteck")) {
int x = getSize().width / 2;
int y = getSize().height / 2;
g.setColor(Color.gray);
g.drawRect(0, 0, 190, 271);
g.setColor(Color.red);
g.drawLine(x - 80, y - 40, x + 80, y - 40);
g.drawLine(x + 80, y - 40, x + 80, y + 40);
g.drawLine(x + 80, y + 40, x - 80, y + 40);
g.drawLine(x - 80, y + 40, x - 80, y - 40);
System.out.println("Rechteck gemalt");
}
}
public String getMethod() {
return option;
}
public void setMethod(String Method) {
this.option = Method;
}
}
class Panel1 extends JPanel{
JTextField jtf_Zahl1 = new JTextField(5);
JTextField jtf_Zahl2 = new JTextField(5);
JTextField jtf_Zahl3 = new JTextField(5);
JTextField jtf_Zahl4 = new JTextField(5);
JLabel jl_Zahl1 = new JLabel("jl_Zahl1");
JLabel jl_Zahl2 = new JLabel("jl_Zahl2");
JLabel jl_Zahl3 = new JLabel("jl_Zahl3");
JLabel jl_Zahl4 = new JLabel("jl_Zahl4");
String option;
public Panel1(){
add(jl_Zahl1);
add(jtf_Zahl1);
add(jl_Zahl2);
add(jtf_Zahl2);
add(jl_Zahl3);
add(jtf_Zahl3);
add(jl_Zahl4);
add(jtf_Zahl4);
}
public JPanel createPanel(int i) {
return this;
}
}
class Panel2 extends JPanel{
JTextField jtf_Zahl1 = new JTextField(5);
JTextField jtf_Zahl2 = new JTextField(5);
JTextField jtf_Zahl3 = new JTextField(5);
JTextField jtf_Zahl4 = new JTextField(5);
JLabel jl_Zahl1 = new JLabel("jl_Zahl1");
JLabel jl_Zahl2 = new JLabel("jl_Zahl2");
JLabel jl_Zahl3 = new JLabel("jl_Zahl3");
JLabel jl_Zahl4 = new JLabel("jl_Zahl4");
String option;
public Panel2(){
add(jl_Zahl1);
add(jtf_Zahl1);
add(jl_Zahl2);
add(jtf_Zahl2);
add(jl_Zahl3);
add(jtf_Zahl3);
add(jl_Zahl4);
add(jtf_Zahl4);
}
public JPanel createPanel(int i) {
return this;
}
}
class Panel3 extends JPanel{
JTextField jtf_Zahl1 = new JTextField(5);
JTextField jtf_Zahl2 = new JTextField(5);
JTextField jtf_Zahl3 = new JTextField(5);
JTextField jtf_Zahl4 = new JTextField(5);
JLabel jl_Zahl1 = new JLabel("jl_Zahl1");
JLabel jl_Zahl2 = new JLabel("jl_Zahl2");
JLabel jl_Zahl3 = new JLabel("jl_Zahl3");
JLabel jl_Zahl4 = new JLabel("jl_Zahl4");
String option;
public Panel3(){
add(jl_Zahl1);
add(jtf_Zahl1);
add(jl_Zahl2);
add(jtf_Zahl2);
add(jl_Zahl3);
add(jtf_Zahl3);
add(jl_Zahl4);
add(jtf_Zahl4);
}
public JPanel createPanel(int i) {
return this;
}
}
class GUI extends JFrame{
public void init() {
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setSize(800,600);
setLocationRelativeTo(null);
}
}
class Menu extends JMenu{
JMenuItem jmi_TQuadraht = new JMenuItem("Quadrat");
JMenuItem jmi_TRechteck = new JMenuItem("Rechteck");
public Menu(String title){
super(title);
add(jmi_TQuadraht);
add(jmi_TRechteck);
}
}