Koordinatensystem wird nicht gezeichnet

stoi

Mitglied
Hallo,

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
 

MrClave

Bekanntes Mitglied
Java:
JPanel JPanel = new JPanel(); // Namensgebung ? dafuq ?!
        JPanel.setBounds(10, 11, 530, 358);
        getContentPane().add(JPanel);

"Funktioniert nicht" ist außerdem keine Problemformulierung.
Was genau geht nicht ? Exception ? Fehlerhaftes Verhalten ?

Und bitte nur relevanten Code posten. Der ganze Menü-Kram hat relativ wenig mit dem Koordinatensystem zu tun.
 
Zuletzt bearbeitet:

eRaaaa

Top Contributor
Zeile 160 ist der Übeltäter (getContentPane().setLayout(null); ) - Null-Layout ist böse zusammen mit dem schon angesprochenem getContentPane().add(JPanel);
Ausserdem solltest du lieber paintComponent überschreiben in der JPanel-Klasse
Wieso eig. zwei mal setVisible(true)?
 
Zuletzt bearbeitet:

stoi

Mitglied
Also ich habe jetzt Zeile 160 auskommentiert (Ich weiß nicht ob das so gut war),
und paintcomponent überschrieben.

und jetzt habe ich das so geschrieben.
Java:
       JPanel Panel = new JPanel();
        Panel.setBounds(10, 11, 530, 358);
        getContentPane().add(Panel);
        Panel.add(new MyDraw());

Jetzt sieht das Koordinatensystem aber echt mini aus.
Hier mal ein Screenshot.

Was muss ich noch ändern?
 

Anhänge

  • Koordinatensystem.JPG
    Koordinatensystem.JPG
    26 KB · Aufrufe: 25

MrClave

Bekanntes Mitglied
Schau dir mal die LayoutManager Tutorials hier im Forum an. :rtfm:
Ein BorderLayout dürfte für dein Problem perfekt sein.

Es nützt natürlich nichts, wenn du
Code:
.setLayout( null );
auskommentierst, aber weiter mit
Code:
.setBounds( );
arbeitest.

Und zu deinem Panel:
Wieso erstellst du ein extra Panel für die MyDraw Klasse ? MyDraw erbt von JPanel und ist somit ein JPanel. Das kannst du direkt auf dein Frame adden.
Und Variablennamen schreibt man immer klein (außer Konstanten), und benennt sie schon gar nicht wie eine offizielle Klasse.

Deine ganze Klasse hat generell wenig, bis gar keine Struktur.
Erst tüftelst du ein bisschen am Frame rum, erstellst dann dein Menü, arbeitest dann wieder am Frame, setzt mittendrin deinen LayoutManager, erstellst ein Koordinatensystem, welches du obendrein doppelt verpackst, und arbeitest dann wieder am Frame. :bahnhof:

Von JFrame erbt man normalerweise auch nicht. Dafür besteht hier kein Bedarf.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
A Swing Koordinatensystem wird gezeichnet verschwindet aber und die Einteilungen bleiben nicht bestehen AWT, Swing, JavaFX & SWT 5
S AWT Schiffeversenken-Koordinatensystem wird nicht richtig angezeigt. AWT, Swing, JavaFX & SWT 6
L JavaFX KoordinatenSystem AWT, Swing, JavaFX & SWT 1
M Koordinatensystem für Projektorientiertes Arbeiten AWT, Swing, JavaFX & SWT 2
J Koordinatensystem AWT, Swing, JavaFX & SWT 2
S Koordinatensystem AWT, Swing, JavaFX & SWT 6
El_Lobo Swing bei Update von Graphik Koordinatensystem nicht jedesmal neu zeichnen AWT, Swing, JavaFX & SWT 2
K OpenGL koordinatensystem AWT, Swing, JavaFX & SWT 7
M Graphics auf JFrame Koordinatensystem AWT, Swing, JavaFX & SWT 3
U Swing KSKB: JComboBox Koordinatensystem AWT, Swing, JavaFX & SWT 3
L SWT Draw2d und Gef Koordinatensystem und Gitternetz? AWT, Swing, JavaFX & SWT 5
L SWT Koordinatensystem in Swt? AWT, Swing, JavaFX & SWT 4
C AWT Graphic 2D Frage zum Koordinatensystem AWT, Swing, JavaFX & SWT 6
M Aktuelle Mausposition im Koordinatensystem AWT, Swing, JavaFX & SWT 3
G Werte in Koordinatensystem zeichnen AWT, Swing, JavaFX & SWT 11
H Darstellung einer Kurve im Koordinatensystem AWT, Swing, JavaFX & SWT 8
L Java 3d Koordinatensystem AWT, Swing, JavaFX & SWT 3
D JPanel Koordinatensystem -> Ursprung verändern. AWT, Swing, JavaFX & SWT 2
C Koordinatensystem drehen AWT, Swing, JavaFX & SWT 3
G Linien in ein Koordinatensystem zeichen AWT, Swing, JavaFX & SWT 7
H funktionen in ein koordinatensystem zeichen AWT, Swing, JavaFX & SWT 5
P Methode wird nicht überprüft AWT, Swing, JavaFX & SWT 4
P paintComponent-Methode wird dauernd neu aufgerufen AWT, Swing, JavaFX & SWT 2
G JavaFX LineChart Datenpunkte Markierung wird abgeschnitten AWT, Swing, JavaFX & SWT 1
P JTextField wird nur sehr klein angezeigt und verändert die Größe nicht AWT, Swing, JavaFX & SWT 3
Telisti Javafx Image wird nicht richtig integiert AWT, Swing, JavaFX & SWT 8
J Netbeans die JavaFX-Anwendung wird nicht ausgeführt AWT, Swing, JavaFX & SWT 16
N €-Zeichen wird nicht akzeptiert AWT, Swing, JavaFX & SWT 4
G Problem mit der Anzeige von jLabel. Unlesbar wenn der Text geändert wird. AWT, Swing, JavaFX & SWT 28
berserkerdq2 Wie füge ich ein Bild in javafx mit dem Scenebuilder ein, das automatisch mitgezogen wird, wenn das Fenster vergrößert wird oder Vollbildmodus AWT, Swing, JavaFX & SWT 6
L jComboBox Actionlistener wird beim erstmaligen Befüllen getriggert AWT, Swing, JavaFX & SWT 7
_user_q Objekt.setSelected(false), wenn es nicht mehr fokussiert wird AWT, Swing, JavaFX & SWT 2
S Javafx getResource-Pfad wird nicht erkannt AWT, Swing, JavaFX & SWT 7
U Warum wird zweimal die Affinetransformation estellt (2Dgraphics, Java)? AWT, Swing, JavaFX & SWT 31
DonBronson Gezeichnetes Objekt verschwindet nachdem erneut gezeichnet wird AWT, Swing, JavaFX & SWT 8
ProggersWorld JavaFX TextArea BackgroundImage wird nicht angezeigt AWT, Swing, JavaFX & SWT 3
M Bild wird nicht geladen obwohl sie gefunden wird AWT, Swing, JavaFX & SWT 0
M Nach Export als Runnable Jar wird css nicht merh gefunden AWT, Swing, JavaFX & SWT 22
izoards Outlook Mail erstellen - Signatur wird nicht angezeigt. AWT, Swing, JavaFX & SWT 3
J actionperformed wird nicht aufgerufen/ repaint() AWT, Swing, JavaFX & SWT 6
J Swing Komponente wird unpassend angepasst in der Größe AWT, Swing, JavaFX & SWT 35
J Java FX NullPointerException, ObservableList wird in View nicht angezeigt.. AWT, Swing, JavaFX & SWT 34
S Next_Button wird nicht ausgeführt. AWT, Swing, JavaFX & SWT 6
FrittenFritze Ein Problem mit der CSSBox, die Größe wird nicht angepasst AWT, Swing, JavaFX & SWT 5
CptK windowClosed() nur aufrufen, wenn Fenster nicht über Button geschlossen wird AWT, Swing, JavaFX & SWT 1
J Komponente wird manchmal falsch gezeichnet AWT, Swing, JavaFX & SWT 0
J Swing JList wird nicht angezeigt AWT, Swing, JavaFX & SWT 6
JMölleri Swing Image wird unscharf dargestellt AWT, Swing, JavaFX & SWT 2
JojoSand Java Programm wird nicht gestartet - keinen Fehlerhinweis AWT, Swing, JavaFX & SWT 9
R Text vom Jlabel wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
D JavaFX Bearbeitetes Bild wird nicht gespeichert AWT, Swing, JavaFX & SWT 9
J setOnCloseRequest wird nicht ausgelöst AWT, Swing, JavaFX & SWT 3
P JavaFX Fenster wird nicht angezeigt (Mac) AWT, Swing, JavaFX & SWT 13
B JavaFX Bei Scenen-Wechsel im primaryStage wird aktuelle Fenstergröße nicht mit übernommen AWT, Swing, JavaFX & SWT 16
B JavaFX Warum wird hier eine NullPointer-Exception geworfen? AWT, Swing, JavaFX & SWT 7
M JavaFX javaFX Label-Text wird nicht gesetzt AWT, Swing, JavaFX & SWT 3
O Swing "Eigenes" JPanel wird dem JScrollPane nicht hinzugefügt AWT, Swing, JavaFX & SWT 5
L Swing JLabel wird beim ändern der Schriftart immer neu gezeichnet. AWT, Swing, JavaFX & SWT 2
R Layout Manager null und Component wird nicht hinzugefügt AWT, Swing, JavaFX & SWT 3
Zrebna JavaFX-Projekt mit Bildern funktioniert nicht - um Hilfe wird gebeten AWT, Swing, JavaFX & SWT 14
kodela BufferStrategy wird nicht gefunden AWT, Swing, JavaFX & SWT 5
J JPanel wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
S ImageView wird dem Gridpane nicht zugefügt AWT, Swing, JavaFX & SWT 1
G Repaint wird nicht durchgeführt AWT, Swing, JavaFX & SWT 8
E Warum wird Text im JTextArea erst am Programmende angezeigt ? AWT, Swing, JavaFX & SWT 1
S Swing Panel wird nicht neu gezeichnet AWT, Swing, JavaFX & SWT 3
M Swing GUI wird nach invokeLater() langsam AWT, Swing, JavaFX & SWT 19
Bluedaishi TableView mit Combox wert wird nicht in die TableView gesetzt AWT, Swing, JavaFX & SWT 38
L JFrame wird zu klein erstellt AWT, Swing, JavaFX & SWT 7
T JavaFX Nach Zoomen wird an falscher Stelle gezeichnet AWT, Swing, JavaFX & SWT 0
kodela Swing Letzte Änderung in der Tabelle wird nicht gespeichert AWT, Swing, JavaFX & SWT 5
cool_brivk24 AWT BufferedImage wird nicht geladen AWT, Swing, JavaFX & SWT 17
S JavaFX Wird es überhaupt genutzt? AWT, Swing, JavaFX & SWT 3
FRI3ND GUI wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
J Canvas wird nicht angezeigt AWT, Swing, JavaFX & SWT 10
K Swing JScrollPane wird nicht angezeigt wenn man Components darstellt. AWT, Swing, JavaFX & SWT 2
ralfb1105 Swing Wert in JTextField wird falsch ausgegeben AWT, Swing, JavaFX & SWT 2
B JavaFX Text wird nicht angezeigt, kein Fehler AWT, Swing, JavaFX & SWT 2
J Aus welchen Grund wird der Button nicht angezeigt im GridPane? AWT, Swing, JavaFX & SWT 1
J MouseListener wird nicht ausgeführt. AWT, Swing, JavaFX & SWT 4
E Swing Liste in Scrollpane wird nicht angezeigt AWT, Swing, JavaFX & SWT 2
J Controller wird zu groß, was tun ? AWT, Swing, JavaFX & SWT 5
CptK Wieso wird nur ein Teil meiner Buttons angezeigt? AWT, Swing, JavaFX & SWT 1
T Label wird nicht angezeigt AWT, Swing, JavaFX & SWT 4
M Aktion ausführen wenn ein JRadiobutton deselektiert wird. AWT, Swing, JavaFX & SWT 3
DaCrazyJavaExpert Swing JPanel "ContentPane" wird nicht gesetzt/angezeigt AWT, Swing, JavaFX & SWT 16
I JavaFX Fenster wird auf einem anderen Rechner anders dargestellt AWT, Swing, JavaFX & SWT 5
zhermann FX Label text wird nicht richtig angezeigt AWT, Swing, JavaFX & SWT 12
zhermann TableView wird nicht gefüllt AWT, Swing, JavaFX & SWT 14
it_is_all Warum wird die JTable im JDialog nicht angezeigt? AWT, Swing, JavaFX & SWT 1
zhermann JavaFX Main App wird nicht geöffnet AWT, Swing, JavaFX & SWT 6
Naxon89 JavaFX Image wird nicht korrekt geladen AWT, Swing, JavaFX & SWT 3
4 Swing JLabel wird ,,abgehackt" AWT, Swing, JavaFX & SWT 3
DaCrazyJavaExpert Swing Größe des JPanel ändern/wird nicht geändert. AWT, Swing, JavaFX & SWT 3
DaCrazyJavaExpert Swing JPanel wird in JScollPane nicht angezeigt AWT, Swing, JavaFX & SWT 2
D JFrame wird nicht richtig angezeigt AWT, Swing, JavaFX & SWT 1
P Kein Bild wird angezeigt bei ImageIcon AWT, Swing, JavaFX & SWT 16
MaxG. JavaFX Inhalt in Tableview wird nicht angezeigt AWT, Swing, JavaFX & SWT 11
T JButton wird beim vergrößern des Fensters erst sichtbar AWT, Swing, JavaFX & SWT 4
A Swing Tabelle wird bei Betätigung des Button nicht befüllt AWT, Swing, JavaFX & SWT 17

Ähnliche Java Themen

Neue Themen


Oben