Hallo an alle,
ich schreibe grade meine Facharbeit und muss dafür ein Programm erstellen, womit ich einen Graphen erstellen kann (sowas hier https://www.google.de/search?q=grap...9g6k6lO6A4AQ&ved=0CAgQ_AUoAQ&biw=1366&bih=624).
Jetzt schaffe ich es aber nicht einmal einfach den Weg der Maus nachzuzeichnen.
In einem leeren JFrame hat mein Code wunderbar funktioniert, wenn ich ihn jetzt allerdings in einem JPanel verwenden möchte funktioniert es nicht. ???:L
Danke schon mal im Voraus für eure Hilfe!
Hier der Code:
ich schreibe grade meine Facharbeit und muss dafür ein Programm erstellen, womit ich einen Graphen erstellen kann (sowas hier https://www.google.de/search?q=grap...9g6k6lO6A4AQ&ved=0CAgQ_AUoAQ&biw=1366&bih=624).
Jetzt schaffe ich es aber nicht einmal einfach den Weg der Maus nachzuzeichnen.
In einem leeren JFrame hat mein Code wunderbar funktioniert, wenn ich ihn jetzt allerdings in einem JPanel verwenden möchte funktioniert es nicht. ???:L
Danke schon mal im Voraus für eure Hilfe!
Hier der Code:
Java:
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.MouseMotionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class Graphenprogramm extends JPanel implements MouseListener, MouseMotionListener{
private int startX, startY, tempX, tempY;
private Graphics2D g2;
public Graphenprogramm() {
this.addMouseListener(this);
this.addMouseMotionListener(this);
}
protected void paintComponent(Graphics g) {
g2 = (Graphics2D) g;
g2.setPaintMode();
g2.drawLine(startX, startY, tempX, tempY);
startX = tempX;
startY = tempY;
}
public static void main(String[] args) {
final JFrame mainWindow = new JFrame("Graphendarstellung");
mainWindow.setLayout(null);
mainWindow.setSize(700, 450);
mainWindow.setLocationRelativeTo(null);
mainWindow.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel menu = new JPanel();
menu.setBounds(0,0,100,401);
JButton normal = new JButton("Zeiger");
normal.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
mainWindow.setCursor(Cursor.getPredefinedCursor(Cursor.DEFAULT_CURSOR));
}
});
JButton vertex = new JButton("Knoten");
vertex.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
mainWindow.setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));
}
});
JButton edge = new JButton("Kante");
edge.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
mainWindow.setCursor(Cursor.getPredefinedCursor(Cursor.CROSSHAIR_CURSOR));
}
});
menu.add(normal);
menu.add(vertex);
menu.add(edge);
mainWindow.add(menu);
JPanel graph = new JPanel();
graph.setBounds(100,5,578,401);
graph.setBackground(Color.white);
graph.add(new Graphenprogramm());
mainWindow.add(graph);
mainWindow.setVisible(true);
}
public void mouseClicked(MouseEvent e) {
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
startX = e.getX();
startY = e.getY();
}
public void mouseReleased(MouseEvent e) {
}
public void mouseDragged(MouseEvent e) {
tempX = e.getX();
tempY = e.getY();
repaint();
}
public void mouseMoved(MouseEvent e) {
}
}