Как реализовать страницы в приложении Java Swing.? - PullRequest
0 голосов
/ 24 ноября 2018

У меня есть некоторый опыт создания приложений на Java, и я хотел бы узнать больше, поэтому я решил создать приложение, которое будет иметь разные страницы.Например, в начальном фрейме будет отображаться меню кнопок, которые приведут к различным фреймам, с указанием разных компонентов и макетов.

Я не слишком уверен в том, что лучше всего применять страницы.Я думаю, что я мог бы сохранить окна JFrame в списке, а затем использовать класс обработчика кнопок, чтобы, возможно, изменить видимость различных кадров, позволяя отображать только соответствующий кадр, когда пользователь нажимает кнопку.Я думаю, что этот метод мог бы работать, но есть ли более эффективный / практический способ сделать это?

Мне известно о CardLayout, однако для этой программы я пытаюсь выучить MigLayout;так что это будет невозможно (насколько я знаю).Я надеюсь, что этот вопрос не слишком расплывчатый, я просто хотел бы узнать лучшие практики, когда речь идет о создании приложений на Java с разными страницами.

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018

JInternalFrame является частью Java Swing.JInternalFrame - это контейнер, который предоставляет множество функций фрейма, включая отображение заголовка, открытие, закрытие, изменение размера, поддержку строки меню и т. Д. Пример внутренних фреймов с компонентами

Код для создания несколькихвнутренние рамки:

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

class solution extends JFrame { 

// frame 
static JFrame f; 

// label to diaplay text 
static JLabel l, l1; 

// main class 
public static void main(String[] args) { 
    // create a new frame 
    f = new JFrame("frame"); 

    // set layout of frame 
    f.setLayout(new FlowLayout()); 

    // create a internal frame 
    JInternalFrame in = new JInternalFrame("frame 1", true, true, true, true); 

    // create a internal frame 
    JInternalFrame in1 = new JInternalFrame("frame 2", true, true, true, true); 

    // create a Button 
    JButton b = new JButton("button"); 
    JButton b1 = new JButton("button1"); 

    // create a label to display text 
    l = new JLabel("This is a JInternal Frame no 1  "); 
    l1 = new JLabel("This is a JInternal Frame no 2  "); 

    // create a panel 
    JPanel p = new JPanel(); 
    JPanel p1 = new JPanel(); 

    // add label and button to panel 
    p.add(l); 
    p.add(b); 
    p1.add(l1); 
    p1.add(b1); 

    // set visibility internal frame 
    in.setVisible(true); 
    in1.setVisible(true); 

    // add panel to internal frame 
    in.add(p); 
    in1.add(p1); 

    // add internal frame to frame 
    f.add(in); 
    f.add(in1); 

    // set the size of frame 
    f.setSize(300, 300); 

    f.show(); 
} 
}
0 голосов
/ 24 ноября 2018

Можно использовать панели с вкладками, это лучше всего подходит для хранения страниц.

https://docs.oracle.com/javase/tutorial/uiswing/components/tabbedpane.html

Также я заметил, что вам нужно правильно рассматривать контейнеры верхнего уровня, потому что вам не нужносоздавать каждый раз JFrame для каждой страницы, по крайней мере, если это было необходимо (например, редактор, создайте новое окно, поэтому вам нужно создать новый JFrame, в вашем случае я так не думаю), поэтому, пожалуйста, рассмотритессылка ниже.

https://docs.oracle.com/javase/tutorial/uiswing/components/toplevel.html

...