Anzeige:
Ergebnis 1 bis 2 von 2

Thema: Application mit Menu und Canvas

  1. #1
    Registrierter Benutzer Avatar von BlueJay
    Registriert seit
    27.08.2004
    Beiträge
    825

    Application mit Menu und Canvas

    Hallo Leute,

    folgendes Problem:

    ich möchte eine Application mit Menu und Canvas für paint erstellen.
    Leider wird das Menu nicht mehr korrekt angezeigt, sobald ich den Content mit dem Canvas einhänge. (kein Dropdown, nur Headers sichtbar)

    Verkleinere ich den Canvas, so dass dessen Höhe die Höhe des Menus unterschreitet, ist das Menu voll sichtbar.

    Zeige ich statt des Canvasses ein Textfeld an, funktioniert das Menu tadellos.

    Code:
    Code:
    public Container mach_textbox()
    {
      JTextPane panne = new JTextPane();
      panne.setOpaque(true);
      panne.setSize(this.sxmax,this.symax);
      panne.setText("Platzhalter fuer andere Texte");
      return panne;
    }
    
    public Container mach_spielfeld()
    {
      JPanel panne = new JPanel();
      panne.setSize(this.sxmax,this.symax);
      panne.add(this); // Canvas!
      return panne;
    }
    
    public JMenuBar mach_menubar()
    {
        JMenuBar menu=new JMenuBar();
        // Dropdown Menus Headers:
        JMenu menu0=new JMenu("Spiel");
        menu0.setMnemonic(KeyEvent.VK_0);
        menu0.getAccessibleContext().setAccessibleDescription("Steuerung Spiel");
        menu.add(menu0);
    
        // Dropdown Menu 0:
        JMenuItem menu00 = new JMenuItem("Neu",KeyEvent.VK_N);
        menu00.getAccessibleContext().setAccessibleDescription( "startet ein neues Spiel");
        menu0.add(menu00);
    
        JMenuItem menu01 = new JMenuItem("Pause",KeyEvent.VK_P);
      menu01.getAccessibleContext().setAccessibleDescription( "Pause/weiter");
        menu0.add(menu01);
    
    ...
    
      return menu;
    }
    
    
    
    
    
    
      public static void main(String[] args)
      { 
        colorix game=new colorix();
        game.init_data();
        JFrame f=new JFrame("C o l o r i x");
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        Container cp=f.getContentPane(); 
        cp.setLayout(new BorderLayout());
        cp.add(game.mach_menubar(),BorderLayout.NORTH); 
    //    cp.add(game.mach_textbox(),BorderLayout.CENTER); // funktioniert
    //    cp.add(game.mach_spielfeld(),BorderLayout.CENTER);  // entweder kein Dropdown oder kein Spielfeld je nach Compilerlaune
        cp.add(game); // Canvas, kein Dropdown
        f.setSize(640,480);
        f.setVisible(true);
      }
    Java: 1.6
    Eine Entwicklungsumgebung benutze ich nicht.

    Habe ich da irgendwo was vergessen?

    so long,
    BlueJay

    Zur Illustration:
    mit Textfeld:



    mit Canvas:


    verkleinerter Canvas:
    Geändert von BlueJay (25-09-2007 um 12:35 Uhr)
    Eigentlich ganz einfach, wenn man's weiss!

  2. #2
    Registrierter Benutzer Avatar von BlueJay
    Registriert seit
    27.08.2004
    Beiträge
    825
    derzeitiger Würgaround:

    Canvas -> JPanel
    paint ->paintComponent

    awt und swing scheinen sich wohl nicht zu vertragen...
    Eigentlich ganz einfach, wenn man's weiss!

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •