Hallo Forum
Ich versuche in einem JFrame ein Menü und ein JPanel zum gemeinsamen betreiben eines Funktionsplotters zu bringen. Soweit habe ich ein Menü hinbekommen. Darunter soll ein JPanel eine Zeichenfläche haben, in der ich z.B. eine tumbe Ellipse oder Parabel reinmalen lasse. Allein das JPanel will sich nicht unterbringen lassen. In allen Tuts die ich so auf Sun oder hier im Forum fand, konnte man ganz leicht ein Menü einbauen. Dann ist aber immer Schluß und der spannende Teil warum man in einer GUI ein Menü benötigt ist dann abgeschlossen. Mir fehlt der Zusammenschluß beider Components. Was muß ich tun, damit das endlich was wird? Ich suche schon seit 3 Wochen eigenständig nach einer Lösung und erbitte Eure Unterstützung.
So schwer kann das doch eigentlich gar nicht sein, oder???
Für die Anordnung aller folgenden Elemente habe ich mich zur Nutzung des GroupLayout Managers entschlossen, weil der mir zumindest die Abstands- und Tabulatoren-Problematik beim Satz der Elemente abnimmt...
Hier ist der Code meiner Klasse. Die Main, Klasse habe ich nicht gepostet, weil die nur den Aufruf mit setzen des Look-And-Feel initiiert.
Muß das Menü und der Rest in ein LayeredPane? Ist der Aufruf getContentPane() Unsinn? Danke für Eure Zeit.
lg,
Semo
Ich versuche in einem JFrame ein Menü und ein JPanel zum gemeinsamen betreiben eines Funktionsplotters zu bringen. Soweit habe ich ein Menü hinbekommen. Darunter soll ein JPanel eine Zeichenfläche haben, in der ich z.B. eine tumbe Ellipse oder Parabel reinmalen lasse. Allein das JPanel will sich nicht unterbringen lassen. In allen Tuts die ich so auf Sun oder hier im Forum fand, konnte man ganz leicht ein Menü einbauen. Dann ist aber immer Schluß und der spannende Teil warum man in einer GUI ein Menü benötigt ist dann abgeschlossen. Mir fehlt der Zusammenschluß beider Components. Was muß ich tun, damit das endlich was wird? Ich suche schon seit 3 Wochen eigenständig nach einer Lösung und erbitte Eure Unterstützung.
So schwer kann das doch eigentlich gar nicht sein, oder???
Für die Anordnung aller folgenden Elemente habe ich mich zur Nutzung des GroupLayout Managers entschlossen, weil der mir zumindest die Abstands- und Tabulatoren-Problematik beim Satz der Elemente abnimmt...
Hier ist der Code meiner Klasse. Die Main, Klasse habe ich nicht gepostet, weil die nur den Aufruf mit setzen des Look-And-Feel initiiert.
Java:
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.event.KeyEvent;
import java.awt.geom.Line2D;
import javax.swing.GroupLayout;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
public class Painter extends JFrame {
private static final long serialVersionUID = -271331225355497706L;
public Dimension getPreferredSize() {
return new Dimension(640, 480);
}
// Erzeugung des Menues
private JMenuBar createMenuBar() {
// Create the menu bar.
JMenuBar menuBar = new JMenuBar();
JMenu file = new JMenu("Datei");
JMenu edit = new JMenu("Bearbeiten");
JMenu help = new JMenu("Hilfe");
// Set Mnemonics
file.setMnemonic(KeyEvent.VK_D);
edit.setMnemonic(KeyEvent.VK_B);
help.setMnemonic(KeyEvent.VK_H);
JMenuItem parabel = new JMenuItem("Parabel ausgeben");
JMenuItem exit = new JMenuItem("Programm beenden");
JMenuItem reset = new JMenuItem("Programm zurücksetzen");
JMenuItem preferences = new JMenuItem("Einstellungen");
JMenuItem _help = new JMenuItem("Hilfe");
JMenuItem info = new JMenuItem("Über...");
file.add(parabel);
file.add(exit);
edit.add(reset);
edit.add(preferences);
help.add(_help);
help.add(info);
menuBar.add(file);
menuBar.add(edit);
menuBar.add(help);
return menuBar;
}
// Panel zum Zeichnen erstellen
private JPanel drawingArea() {
JPanel panel = new JPanel();
panel.setSize(640, 480);
return panel;
}
protected void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_ANTIALIASING,
RenderingHints.VALUE_ANTIALIAS_ON);
g2.draw(new Line2D.Double(10, 10, getWidth() - 10, 70));
g.drawOval(50, 75, 50, 50);
System.out.println("Ich werde ausgeführt!");
}
/**
* GUI erzeugen und anzeigen.
*/
public void createAndShowGUI() {
JFrame frame = new JFrame("Graphischer Funktionsplotter");
frame.setSize(640, 480);
//Fenster zentrieren geht nicht
int posX = (int) frame.getWidth()/2;
int posY = (int) frame.getHeight()/3;
frame.setLocation(posX, posY);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
Painter men_U = new Painter();
frame.setJMenuBar(men_U.createMenuBar());
frame.setVisible(true);
GroupLayout layout = new GroupLayout(getLayeredPane());
getLayeredPane().setLayout(layout);
layout.setAutoCreateGaps(true);
layout.setAutoCreateContainerGaps(true);
}
}
Muß das Menü und der Rest in ein LayeredPane? Ist der Aufruf getContentPane() Unsinn? Danke für Eure Zeit.
lg,
Semo