Also mal die GUIVIew
import java.awt.event.ActionListener;
import java.awt.event.MouseListener;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.event.ChangeListener;
import javax.swing.JLabel;
import javax.swing.JComboBox;
import javax.swing.JSlider;
import javax.swing.JButton;
import javax.swing.DefaultComboBoxModel;
public class DiGraphView extends JFrame {
private JPanel contentPane;
private JMenuBar menuebar;
private JMenu menu;
private JMenuItem open;
private JLabel Suchalgorithmus;
private JLabel Startknoten;
private JLabel Zielknoten;
private JComboBox comboBox;
private JComboBox comboBox_1;
private JComboBox comboBox_2;
private JSlider slider;
private JLabel geschwindigkeit;
private JButton Start;
private JButton btnNewButton;
/**
* Die main-Methode initialisiert den Controller,
* der anschließend die erste GUI öffnet.
*
*/
/**
* Erzeuge Frame.
*
*/
public DiGraphView() {
setTitle("DiGraph-GUIView");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 675, 450);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
menuebar = new JMenuBar();
setJMenuBar(menuebar);
menu = new JMenu("Datei");
menuebar.add(menu);
open = new JMenuItem("Graph Laden");
menu.add(open);
Suchalgorithmus = new JLabel("Suchalgorithmus");
Suchalgorithmus.setBounds(10, 90, 131, 14);
contentPane.add(Suchalgorithmus);
Startknoten = new JLabel("Startknoten");
Startknoten.setBounds(10, 135, 100, 14);
contentPane.add(Startknoten);
Zielknoten = new JLabel("Zielknoten");
Zielknoten.setBounds(10, 173, 100, 14);
contentPane.add(Zielknoten);
setComboBox(new JComboBox());
getComboBox().setBounds(159, 89, 100, 17);
contentPane.add(getComboBox());
setComboBox_1(new JComboBox());
getComboBox_1().setBounds(120, 134, 100, 17);
contentPane.add(getComboBox_1());
setComboBox_2(new JComboBox());
getComboBox_2().setBounds(120, 172, 100, 17);
contentPane.add(getComboBox_2());
slider = new JSlider(0,100,100);
slider.setBounds(10, 254, 210, 23);
contentPane.add(slider);
Start = new JButton("Start");
Start.setBounds(170, 290, 100, 23);
contentPane.add(Start);
geschwindigkeit = new JLabel("Suchgeschwindigkeit");
geschwindigkeit.setBounds(10, 227, 210, 14);
contentPane.add(geschwindigkeit);
}
/*
* Listener hinzufügen, damit der Controller weiß,
* wann sich etwas ändert bzw. gedrückt wird
*/
public void getOpenFileListener(ActionListener l){
open.addActionListener(l);
}
public void sliderListener(ChangeListener cl){
slider.addChangeListener(cl);
}
public void searchListener(ActionListener l){
Start.addActionListener(l);
}
/*
* Getter und Setter für private Instanzvariablen
*/
public JComboBox getComboBox() {
return comboBox;
}
public void setComboBox(JComboBox comboBox) {
this.comboBox = comboBox;
this.comboBox.setModel(new DefaultComboBoxModel(new String[] {"BFS", "DFS", "A-Stern", "Dijkstra"}));
this.comboBox.setToolTipText("BFS
DFS
A-Stern
Dijkstra");
}
public JComboBox getComboBox_1() {
return comboBox_1;
}
public void setComboBox_1(JComboBox comboBox_1) {
this.comboBox_1 = comboBox_1;
}
public JComboBox getComboBox_2() {
return comboBox_2;
}
public void setComboBox_2(JComboBox comboBox_2) {
this.comboBox_2 = comboBox_2;
}
}```
Und auf dieser GUI soll ich nun auf der rechten Seite den Graphen hinzufügen. Nun wie ihr seht kann man am Schluss verschiedene Suchalgos drauf anwenden und schauen ob ein Weg vorhanden ist.
Wenn nun ein Knoten expandiert wird, soll er seine Farbe ändern.
Und skaliert soll der Graph auch richtig werden, ist ja ein Unterschied ob ich 500 Knoten oder nur 5 einfüge.
Ich würde ecuh ja alles geben, aber dann erstickt ihr in Code. :)
Ich komme aufjeden Fall nicht weiter, und muss morgen abgeben.. Weiß nicht wie ich das schaffen soll. Hat einer von euch Urlaub und kann das kurz machen ;P