[英]How to implement pages in Java Swing app.?
我在Java創建Apps方面有一些經驗,並且想了解更多,因此決定創建一個具有不同頁面的應用程序。 例如,初始框架將顯示一個按鈕菜單,這些菜單將導致不同的框架,並顯示不同的組件和布局。
我不太確定實施網頁的最佳做法。 我想我可以將JFrame
窗口存儲在一個列表中,然后使用按鈕處理程序類來更改不同框架的可見性,僅當用戶單擊按鈕時才允許相關框架可見。 我認為這種方法可行,但是是否有更有效/實用的方法呢?
我知道CardLayout
,但是對於這個程序,我試圖學習MigLayout
。 因此,據我所知,這將是不可能的。 我希望這個問題不要太含糊,我只是想了解有關在Java中創建具有不同頁面的應用程序的最佳實踐。
可以使用選項卡式窗格,這是存儲頁面的最佳選擇。
https://docs.oracle.com/javase/tutorial/uiswing/components/tabbedpane.html
我還注意到您需要適當考慮頂級容器,因為您不必每次都為每個Page創建JFrame,至少在必要時(例如:編輯器,創建一個新窗口,因此您需要創建一個新的JFrame(對於您而言,我認為不是),因此請考慮下面的鏈接。
https://docs.oracle.com/javase/tutorial/uiswing/components/toplevel.html
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();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.