Zeichen per Menuitem funktioniert nicht

Fantasyelf

Neues Mitglied
Hallo,

ich bin ein Java-Neuling und habe ein Problem.
Ich möchte das bei einer Aktion im Menü in mein "JPanel zum Zeichnen" gezeichnet wird.
Es soll später eine Textdatei geöffnet werden und danach werden dann die Rechtecke eine Logicals gezeichnet. Zur Zeit will ich bloß erstmal sehen, das überhaupt was gezeichnet wird.
Das Tutorial zum Zeichnen mit SWING von Wildcard habe ich gelesen und beherzigt, aber irgendetwas klappt trotzdem nicht.
Wie ich später einen Mauslistener an das JPanel hänge, läßt sich bestimmt ergoogeln.

Hier nun der Quellcode:

LogicalSolverApp.java:
Java:
package logicalsolver;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

/**
 *
 * @author ######;
 */
public class LogicalSolverApp {

   private JFrame fenster;
   private JPanel paneldraw;
   private JPanel panelbuttons;
   private JMenuBar menuebar;
   private JMenu menue;
   private DrawLogicalStructur logstruktur = new DrawLogicalStructur();

   public LogicalSolverApp() {
      // Erstelle Fenster
      fenster = new JFrame("Logical Solver");
      fenster.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      fenster.setSize(900, 650);
      Toolkit toolkit = fenster.getToolkit();
      Dimension size = toolkit.getScreenSize();
      fenster.setLocation(size.width/2-fenster.getWidth()/2, size.height/2-fenster.getHeight()/2);

      // Erstelle Menübar
      menuebar = new JMenuBar();

      // Erstelle Menü Datei
      menue = new JMenu("Datei");
      menue.setMnemonic(KeyEvent.VK_D);
      menue.getAccessibleContext().setAccessibleDescription("Menü Datei");
      menuebar.add(menue);

      // Erstelle Menü Items in Menü Datei
      JMenuItem menuitem = new JMenuItem("Logical laden...", KeyEvent.VK_L);
      menuitem.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L, ActionEvent.ALT_MASK));
      menuitem.getAccessibleContext().setAccessibleDescription("Logical laden");
      menuitem.addActionListener(new ActionListener() {
         public void actionPerformed(ActionEvent event) {
            logstruktur.setPreferredSize(new Dimension(700, 650));
            paneldraw.add(logstruktur);
            logstruktur.repaint();
            System.out.println("Logical laden ausgewählt");
         }
      });
      menue.add(menuitem);

      fenster.setJMenuBar(menuebar);

      // Erstelle Panel zum Zeichen
      paneldraw = new JPanel();
      paneldraw.setSize(700, 650);
      paneldraw.setBackground(Color.WHITE);
      fenster.add(paneldraw);
      paneldraw.setLayout(null);

      // Erstelle Panel für spätere Buttons
      panelbuttons = new JPanel();
      panelbuttons.setSize(200, 650);
      panelbuttons.setBackground(Color.LIGHT_GRAY);
      panelbuttons.setLocation(700, 0);
      fenster.add(panelbuttons);
      //panelbuttons.setLayout(null);

      fenster.setVisible(true);
   }

   /**
    * @param args the command line arguments
   */
   public static void main(String[] args) {
      LogicalSolverApp lsa = new LogicalSolverApp();
   }

}

DrawLogicalStructur.java
Java:
package logicalsolver;

import java.awt.*;
import javax.swing.*;

/**
 *
 * @author ######
 */
public class DrawLogicalStructur extends JComponent {

   private String file = "";
   private int[][] matrix;
   private int x;
   private int y;

   public void setFile(String filename) {
      this.file = filename;
   }

   @Override
   public void paintComponent(Graphics g) {
      super.paintComponent(g);
      Graphics2D g2d = (Graphics2D) g;
      g2d.setColor(new Color(0, 0, 0));
      g2d.drawRect(0, 0, 50, 50);
   }
}

Ich würde mich freuen, wenn Ihr mir helfen könntet.

Gruß
Fantasyelf
 

Marco13

Top Contributor
Wenn du "null" als LayoutManager verwendest, muss du die Größe der Components selbst setzen. D.h. statt
logstruktur.setPreferredSize
must du
logstruktur.setSize
verwenden.

Allerdings solltest du dir genau überlegen, ob du das willst. Es gibt nur wenige Fälle, wo es sinnvoll ist, keine LayoutManager zu verwenden. Überleg' dir, wie die components angeordnet sein sollten. Mit BorderLayout, GridLayout und vielleicht noch BoxLayout kann man die ALLERmeisten praktisch auftretenden Anordnungs-Wünsche erfüllen. Und DANN macht auch setPreferredSize wieder Sinn.


BTW:
Java:
      /* wech...
      Toolkit toolkit = fenster.getToolkit();
      Dimension size = toolkit.getScreenSize();
      fenster.setLocation(size.width/2-fenster.getWidth()/2, size.height/2-fenster.getHeight()/2);
      */
      // hin:
      fenster.setLocationRelativeTo(null);
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
N €-Zeichen wird nicht akzeptiert AWT, Swing, JavaFX & SWT 4
_user_q Gibt es eine Möglichkeit, in Java alle möglichen Zeichen automatisch tippen zu lassen? AWT, Swing, JavaFX & SWT 13
Kohl Jedes Objekt einer JTable um ein Zeichen verkürzen AWT, Swing, JavaFX & SWT 7
F AWT awt KeyEvent - Zeichen direkt nach Eingabe löschen AWT, Swing, JavaFX & SWT 2
L Swing Tastatur zeichen AWT, Swing, JavaFX & SWT 4
A 2D-Grafik Zeichen werden über unabhängingen JRadioButton nicht gefüllt AWT, Swing, JavaFX & SWT 28
I JOptionPane maximale Zeichen einstellen AWT, Swing, JavaFX & SWT 2
L JavaFX ASCII Zeichen /char von KeyEvent erhalten AWT, Swing, JavaFX & SWT 5
C Zeichen eines 6 -Eckes AWT, Swing, JavaFX & SWT 1
S Zeichen ohne paint-Methode AWT, Swing, JavaFX & SWT 2
C JavaFX Tiefgestellte Zeichen in fxml AWT, Swing, JavaFX & SWT 2
B EventHandler für durch Tastenkombination erzeugte Zeichen AWT, Swing, JavaFX & SWT 3
L Ausgabe in JEditorPane mittels HTMLEditorKit zeigt auf bestimmten Systemen falsche Zeichen AWT, Swing, JavaFX & SWT 1
S Swing Warum funktioniert der automatische Zeilenumbruch mit arabischen Zeichen beim JTextPane nicht AWT, Swing, JavaFX & SWT 3
A Zeichen-Steuerelement in Swing AWT, Swing, JavaFX & SWT 0
kaoZ Swing Aktives Zeichen für Spieleprogrammierung ? AWT, Swing, JavaFX & SWT 8
D Swing Manuellen Kreis zeichen AWT, Swing, JavaFX & SWT 22
U Label zeigt nicht überall HTML Zeichen AWT, Swing, JavaFX & SWT 3
R einzelne Zeichen in jTable einlesen AWT, Swing, JavaFX & SWT 10
S SWT [TextBox] Bestimmtes Zeichen entfernen unterbinden AWT, Swing, JavaFX & SWT 3
P readLine solange es mit einem bestimmten Zeichen anfängt AWT, Swing, JavaFX & SWT 5
P Komische Zeichen beim Abspeichern von TextFelder AWT, Swing, JavaFX & SWT 2
Jats Zeichen auf mehrere JPanels AWT, Swing, JavaFX & SWT 7
P 2D-Grafik versch. Rectangles aus array von textfelder zeichen AWT, Swing, JavaFX & SWT 6
DEvent Swing JTextField Anzahl an sichtbaren Zeichen AWT, Swing, JavaFX & SWT 4
D JLabel und JPanel -> Neu zeichen?! oO AWT, Swing, JavaFX & SWT 2
E jTextFiled max 160 Zeichen? AWT, Swing, JavaFX & SWT 4
Luk10 Swing Problem mit Zeichen-Thread AWT, Swing, JavaFX & SWT 8
A Rechteck zeichen AWT, Swing, JavaFX & SWT 4
Q AWT Choice ein Zeichen hinzufügen AWT, Swing, JavaFX & SWT 4
J 2D-Grafik Textbasiertes 2D Spiel, jedes Zeichen manipulierbar AWT, Swing, JavaFX & SWT 7
R 2D-Grafik auf JPanel zeichen - ohne @Override paintComponent AWT, Swing, JavaFX & SWT 6
S Thread.sleep() in einer methode fürs zeichen AWT, Swing, JavaFX & SWT 3
T Zeichen/char in Bild umwandeln und darstellen AWT, Swing, JavaFX & SWT 10
2 Bücher über Zeichen und Baumalgorithmen AWT, Swing, JavaFX & SWT 5
T Zeichen zählen JTextPane AWT, Swing, JavaFX & SWT 4
V Nur zulässige Zeichen in JTable-Zellen eintragen können AWT, Swing, JavaFX & SWT 2
P Swing Probleme beim Zeichen AWT, Swing, JavaFX & SWT 6
aze JTextfield nur so breit dass alle zeichen sichtbar sind AWT, Swing, JavaFX & SWT 2
3TageBart Ebenen in Zeichen-Programm implementieren AWT, Swing, JavaFX & SWT 9
P Zeichen abhängig davon, ob sich eine Variable geändert hat AWT, Swing, JavaFX & SWT 2
G Blinkenden Punkt zeichen AWT, Swing, JavaFX & SWT 2
G Viele Fehler beim zeichen AWT, Swing, JavaFX & SWT 5
J JTextPane mit genau 80 Zeichen breite definieren? AWT, Swing, JavaFX & SWT 3
J jTextarea Anzahl Zeichen in einer Zeile begrenzen AWT, Swing, JavaFX & SWT 2
Lazybone CMYK Zeichen AWT, Swing, JavaFX & SWT 12
H Polyline zeichen, aber wie? AWT, Swing, JavaFX & SWT 2
D jTable ausdrucken => € zeichen wird nicht richtig angezei AWT, Swing, JavaFX & SWT 7
H Problem beim zeichen eines TimeSeriesChart mit jfreechart AWT, Swing, JavaFX & SWT 5
K UNICODE ZEICHEN in den SWing-GUIs AWT, Swing, JavaFX & SWT 4
B Dreiecke zeichen AWT, Swing, JavaFX & SWT 3
D Zeichen ein Pixel mit Java2D AWT, Swing, JavaFX & SWT 15
C JFormattedTextField - nur bestimmte Zeichen zulassen AWT, Swing, JavaFX & SWT 3
F Zeichen von Linien, Rechtecken, zb wie in paint AWT, Swing, JavaFX & SWT 2
B Zeichen werden im JFormattedTextField überschrieben AWT, Swing, JavaFX & SWT 3
C PI-Zeichen im JLabel AWT, Swing, JavaFX & SWT 3
G Zeilenumbruch nach n Zeichen in JTextArea AWT, Swing, JavaFX & SWT 24
U kleiner-Zeichen JEditorPanel (war: JOptionPane) AWT, Swing, JavaFX & SWT 5
T JLayerdPane: wie etwas über eine AWT Komponente zeichen? AWT, Swing, JavaFX & SWT 2
N Tastatur Zeichen einlesen ohne sichtbares Fenster AWT, Swing, JavaFX & SWT 8
D JTextPane: "Nichtdruckbare Zeichen" anzeigen & AWT, Swing, JavaFX & SWT 4
R letztes Zeichen aus textfeld auslesen AWT, Swing, JavaFX & SWT 2
M rendern von zeichen AWT, Swing, JavaFX & SWT 4
R Zeichen-Markierungrahmen AWT, Swing, JavaFX & SWT 5
F Eingabe in JPasswordField auf vier Zeichen beschränken AWT, Swing, JavaFX & SWT 3
M Transparentes gif als extra Klasse auf einen JFrame zeichen AWT, Swing, JavaFX & SWT 17
B ComboBox: nur bestimmte Zeichen zulassen AWT, Swing, JavaFX & SWT 5
G Linien in ein Koordinatensystem zeichen AWT, Swing, JavaFX & SWT 7
H funktionen in ein koordinatensystem zeichen AWT, Swing, JavaFX & SWT 5
B Erstes Zeichen in einem String toUpperCase ??? AWT, Swing, JavaFX & SWT 4
bummerland ein zeichen nach einem zeilenumbruch einfügen AWT, Swing, JavaFX & SWT 4
padde479 MenuItem MouseEvent/-Listener AWT, Swing, JavaFX & SWT 5
Shallty JavaFX MenuItem (Info) Icon ändern AWT, Swing, JavaFX & SWT 7
Wurstsemmel SWT MenuItem dynamisch hinzufügen AWT, Swing, JavaFX & SWT 2
D Icon in Menuitem einfügen AWT, Swing, JavaFX & SWT 8
K Panel verdeckt MenuItem AWT, Swing, JavaFX & SWT 5
S JavaFX MenuItem in hoher (height größer) MenuBar vertikal zentrieren AWT, Swing, JavaFX & SWT 4
E JavaFX JavaFX - MenuItem erstellen aus dem Inhalt einer HashMap AWT, Swing, JavaFX & SWT 1
D JavaFX - MenuItem mit Icon AWT, Swing, JavaFX & SWT 1
H Javafx - Menuitem - Icon AWT, Swing, JavaFX & SWT 4
M JavaFX MenuItem Hintergrundfarbe in CSS AWT, Swing, JavaFX & SWT 4
C Swing MenuItem feuert Action nur wenn disabled AWT, Swing, JavaFX & SWT 2
P JTabbedPane per Menuitem erstellen AWT, Swing, JavaFX & SWT 20
S LayoutManager Card des CardLayout mit MenuItem auswaehlen AWT, Swing, JavaFX & SWT 9
lumo SWT MenuItem + Selection/Listener AWT, Swing, JavaFX & SWT 2
D Icon in MenuItem AWT, Swing, JavaFX & SWT 3
B Actionlistener für MenuItem AWT, Swing, JavaFX & SWT 19
G Swing ->mainpanel wechseln bei Klick auf MenuItem (NetB.6 AWT, Swing, JavaFX & SWT 3
K MenuItem, StyledDocument remove AWT, Swing, JavaFX & SWT 16
G Referenz über MenuItem aus ActionListener auf das Objekt AWT, Swing, JavaFX & SWT 8
K MenuItem mit Unterpunkten AWT, Swing, JavaFX & SWT 3
S Mouselistener erzeugt kein Event in einem Menuitem AWT, Swing, JavaFX & SWT 2
K MenuItem: Farbe bei Selektion AWT, Swing, JavaFX & SWT 4
T AWT: MenuItem mit Symbol AWT, Swing, JavaFX & SWT 5
U KeyListener vs menuitem.setActionCommand() AWT, Swing, JavaFX & SWT 2
Juelin if Abfrage funktioniert nicht richtig AWT, Swing, JavaFX & SWT 10
C Button ActionListener funktioniert nicht AWT, Swing, JavaFX & SWT 1
P AWT Programm funktioniert nicht richtig AWT, Swing, JavaFX & SWT 35
MartinNeuerlich Kann mir jemand, der einen Mac mit einem m1 oder m2-Chip hat, eine POM geben mit der Javafx-Fullscreen beim Mac mit m-Chip funktioniert? AWT, Swing, JavaFX & SWT 1
R auto. Importanweisungen für javafx funktioniert in Eclipse nicht mehr AWT, Swing, JavaFX & SWT 4

Ähnliche Java Themen

Neue Themen


Oben