Hallo,
ich möchte auf meinem JPanel ein Koordinatensystem zeichnen.
Wieso funktioniert das hier nicht?
Ich poste mal das Coding.
Viele Grüße
stoi
ich möchte auf meinem JPanel ein Koordinatensystem zeichnen.
Wieso funktioniert das hier nicht?
Ich poste mal das Coding.
Java:
package Thesis;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JMenuBar;
import javax.swing.JMenu;
import javax.swing.JMenuItem;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class GUI extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
private static final int SIZE = 300;
private static final double xMin = -4.0;
private static final double xMax = 4.0;
private static final double yMin = -16;
private static final double yMax = 16;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
GUI frame = new GUI();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public GUI() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 736, 474);
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
JMenu mnNewMenu = new JMenu("Datei");
menuBar.add(mnNewMenu);
JMenuItem mntmNewMenuItem = new JMenuItem("Neu");
mntmNewMenuItem.setIcon(new ImageIcon(GUI.class.getResource("/com/sun/java/swing/plaf/windows/icons/File.gif")));
mnNewMenu.add(mntmNewMenuItem);
JMenuItem mntmNewMenuItem_1 = new JMenuItem("\u00D6ffnen...");
mnNewMenu.add(mntmNewMenuItem_1);
JMenuItem mntmNewMenuItem_2 = new JMenuItem("Speichern");
mnNewMenu.add(mntmNewMenuItem_2);
JMenuItem mntmNewMenuItem_3 = new JMenuItem("Speichern unter...");
mnNewMenu.add(mntmNewMenuItem_3);
JMenuItem mntmNewMenuItem_4 = new JMenuItem("Drucken...");
mnNewMenu.add(mntmNewMenuItem_4);
JMenuItem mntmBeenden = new JMenuItem("Beenden");
mntmBeenden.setIcon(new ImageIcon(GUI.class.getResource("/javax/swing/plaf/metal/icons/ocean/close.gif")));
mntmBeenden.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
System.exit(0);
}
});
mnNewMenu.add(mntmBeenden);
JMenu mnNewMenu_1 = new JMenu("Bearbeiten");
menuBar.add(mnNewMenu_1);
JMenuItem mntmNewMenuItem_5 = new JMenuItem("New menu item");
mnNewMenu_1.add(mntmNewMenuItem_5);
JMenuItem mntmNewMenuItem_7 = new JMenuItem("New menu item");
mnNewMenu_1.add(mntmNewMenuItem_7);
JMenuItem mntmNewMenuItem_6 = new JMenuItem("New menu item");
mnNewMenu_1.add(mntmNewMenuItem_6);
JMenuItem mntmNewMenuItem_8 = new JMenuItem("New menu item");
mnNewMenu_1.add(mntmNewMenuItem_8);
JMenu mnNewMenu_2 = new JMenu("Einstellungen");
menuBar.add(mnNewMenu_2);
JMenu mnNewMenu_3 = new JMenu("Strichst\u00E4rke");
mnNewMenu_2.add(mnNewMenu_3);
JMenuItem mntmDnn = new JMenuItem("D\u00FCnn");
mnNewMenu_3.add(mntmDnn);
JMenuItem mntmMittel = new JMenuItem("Mittel");
mnNewMenu_3.add(mntmMittel);
JMenuItem mntmDick = new JMenuItem("Dick");
mnNewMenu_3.add(mntmDick);
JMenu mnGitterachse = new JMenu("Gitternetz");
mnNewMenu_2.add(mnGitterachse);
JMenuItem mntmAn = new JMenuItem("An");
mnGitterachse.add(mntmAn);
JMenuItem mntmAus = new JMenuItem("Aus");
mnGitterachse.add(mntmAus);
JMenu mnZoom = new JMenu("Zoom");
mnNewMenu_2.add(mnZoom);
JMenuItem menuItem = new JMenuItem("0.1");
mnZoom.add(menuItem);
JMenuItem menuItem_1 = new JMenuItem("0.5");
mnZoom.add(menuItem_1);
JMenuItem menuItem_2 = new JMenuItem("1.0");
mnZoom.add(menuItem_2);
JMenu mnLiveAuswertung = new JMenu("Live Auswertung");
mnNewMenu_2.add(mnLiveAuswertung);
JMenuItem mntmAn_1 = new JMenuItem("An");
mnLiveAuswertung.add(mntmAn_1);
JMenuItem mntmAus_1 = new JMenuItem("Aus");
mnLiveAuswertung.add(mntmAus_1);
JMenu mnAnsicht = new JMenu("Ansicht");
menuBar.add(mnAnsicht);
JMenu menu = new JMenu("?");
menuBar.add(menu);
JMenuItem mntmHilfeAnzeigen = new JMenuItem("Hilfe anzeigen");
menu.add(mntmHilfeAnzeigen);
JMenuItem mntmInfo = new JMenuItem("Info");
menu.add(mntmInfo);
getContentPane().setLayout(null);
JButton btnNewButton = new JButton("New button");
btnNewButton.setBounds(550, 73, 89, 23);
getContentPane().add(btnNewButton);
JButton btnNewButton_1 = new JButton("New button");
btnNewButton_1.setBounds(550, 107, 89, 23);
getContentPane().add(btnNewButton_1);
JButton btnNewButton_2 = new JButton("New button");
btnNewButton_2.setBounds(550, 144, 89, 23);
getContentPane().add(btnNewButton_2);
JButton btnNewButton_3 = new JButton("New button");
btnNewButton_3.setBounds(550, 178, 89, 23);
getContentPane().add(btnNewButton_3);
this.setSize(747,484);
addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e) { dispose();}});
getContentPane().add(new MyDraw());
JPanel JPanel = new JPanel();
JPanel.setBounds(10, 11, 530, 358);
getContentPane().add(JPanel);
this.setVisible(true);
}
public class MyDraw extends JPanel {
/**
*
*/
private static final long serialVersionUID = 1L;
public void paint(Graphics g) {
zeicheKoordinatenSystem(g);
for(double x = xMin; x < xMax; x += 0.01 ){
g.drawLine(berechneXPixel(x), berechneYPixel(f(x)), berechneXPixel(x), berechneYPixel(f(x)));
}
}
private void zeicheKoordinatenSystem(Graphics g) {
zeichneXAchse(g);
zeichneYAchse(g);
}
private void zeichneXAchse(Graphics g) {
int startx = berechneXPixel(xMin);
int endx = berechneXPixel(xMax);
int starty = berechneYPixel(0);
int endy = berechneYPixel(0);
g.drawLine(startx, starty, endx, endy);
}
private void zeichneYAchse(Graphics g) {
int startx = berechneXPixel(0);
int endx = berechneXPixel(0);
int starty = berechneYPixel(yMin);
int endy = berechneYPixel(yMax);
g.drawLine(startx, starty, endx, endy);
}
private int berechneXPixel(double x) {
double pixelBreite = ((xMax - xMin) / (double)getWidth());
return (int) ((x - xMin) / pixelBreite );
}
private int berechneYPixel(double y) {
double pixelBreite = ((yMax - yMin) / (double)getHeight());
return getHeight() - ((int) ((y - yMin) / pixelBreite));
}
private double f(double x) {
return x * x;
}
}
}
Viele Grüße
stoi