Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

JInternalFrame mit JToolBar

Empfohlene Antworten

Veröffentlicht

Hi,

ich habe ein kleines Java- Problem. Und zwar möchte habe ich ein MDI Fenster also mit einem JDesktopPane() erstellen. In diesem werden dann ja mehrere verschiebbare Fenster angezeigt. Dazu möchte ich nun eine Toolbar einfügen. Das funktioniert allerdings nicht so wie es soll, und irgendwie fehlt mir auch die richtige Idee. Kann mir vielleicht jemand einen bischen Code schreiben, damit ich eine Eingebung bekomme?

mfg maddin

sicher


class Fenster extends JFrame {

// ...

   public Fenster() {

      // ...

      JDesktopPane dp = new JDesktopPane();

      dp.setBackground(Color.GRAY);

      setContentPane();


      JMenuBar mnubar = new JMenuBar();

      // ...

      setJMenuBar(mnubar);


      JButton bt = new JButton("Test");

      bt.setSize(400, 20);

      add(bt, JLayeredPane.FRAME_CONTENT_LAYER);


      JInternalFrame frm = new JInternalFrame("fenster", true, true, true, true);

      frm.setSize(100, 100);

      frm.setLocation(10, 10);

      frm.setVisible(true);

      add(frm);

      // ...

   }

// ...

}

Soweit der Code. Funktioniert soweit auch recht gut. Das Menü wird hinzugefügt, der Button auch. Bloß man kann das Fenster über den Button schieben - was natürlich schrecklich ist. Außerdem sollte der Button irgendwann noch eine Toolbar werden und die Toolbar sollte möglichst immer die volle Fensterbreite besitzen.

mfg maddin

Das Menü wird hinzugefügt, der Button auch. Bloß man kann das Fenster über den Button schieben - was natürlich schrecklich ist. Außerdem sollte der Button irgendwann noch eine Toolbar werden und die Toolbar sollte möglichst immer die volle Fensterbreite besitzen.
Du solltest dich ein bisschen mit LayoutManagern auseinandersetzen, damit erhälst du nämlich genau die Effekte, die du haben willst.

Du musst dir als erstes (ruhig auf einem Blatt Papier) überlegen, welche Bereiche hast du, und wie genau sollen diese Bereiche aufgeteilt sein. Als nächsten Schritt gilt es dann einen LayoutManager zu finden, der genau diese Aufteilung erreicht.

Dein aktuelles Problem sollte sich eigentlich so lösen lassen (ungetestet):


  public static void main(String[] args) {


    // Desktop erzeugen

    JDesktopPane desktopPane  = new JDesktopPane();

    desktopPane.setBackground(Color.GRAY);


    // Toolbar für Button(s)

    JPanel buttonPanel        = new JPanel(new FlowLayout(FlowLayout.LEFT));

    buttonPanel.add(new JButton("Drück mich!"));


    // Haupt-Panel

    JPanel contentPane        = new JPanel(new BorderLayout());

    contentPane.add(buttonPanel, BorderLayout.NORTH);

    contentPane.add(desktopPane, BorderLayout.CENTER);


    // Menü erzeugen

    JMenuBar menuBar          = new JMenuBar();

    JMenu menu                = new JMenu("Menü");

    JMenuItem menuItem        = new JMenuItem("Drück mich");

    menu.add(menuItem);

    menuBar.add(menu);


    // Frame erzeugen

    JFrame frame              = new JFrame();

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    frame.setJMenuBar(menuBar);

    frame.setContentPane(contentPane);

    frame.setSize(400, 200);

    frame.setLocation(10, 10);

    frame.setVisible(true);


  }  

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.