我寫了這段代碼示例來說明我在使用我的程序時遇到的問題。如何在其JSplitPane中進行FlowLayout封裝?
我希望能夠將JSplitPane的滑動條滑動到左側,超出按鈕邊緣,壓縮該JPanel,並讓FlowLayout將按鈕換到第二行。如果我調整整個JFrame的大小來強制壓縮,那麼按鈕(我假設)只是從右邊的那邊跑過來的,而不是在右邊JPanel,在滑動條下面(我想,因爲我顯然看不到它們)。
我在做什麼錯?
import java.awt.*;
import java.io.*;
import java.util.*;
import javax.swing.*;
public class Driver implements Runnable {
public static void main(String[] args) {
(new Driver()).run();
}
public void run() {
try {
go();
} catch (Exception e) {
e.printStackTrace();
System.exit(-1);
}
}
private void go() throws Exception {
JFrame jframe = new JFrame("FlowLayoutTest");
JPanel left = new JPanel();
left.setBackground(Color.RED);
left.setLayout(new BorderLayout());
JPanel right = new JPanel();
right.setBackground(Color.BLUE);
right.setLayout(new BorderLayout());
JSplitPane topmost =
new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, left, right);
jframe.setContentPane(topmost);
JPanel bottomleft = new JPanel();
bottomleft.setBackground(Color.GREEN);
bottomleft.setLayout(new FlowLayout());
left.add(bottomleft, BorderLayout.PAGE_END);
for (int i = 0; i < 10; i++) {
bottomleft.add(new JButton("" + i));
}
jframe.pack();
jframe.setVisible(true);
jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
問題是,我的程序在BorderLayout的其他部分中有實際的東西,但刪除它們並不會影響'bottomleft'的行爲,所以我的模型忽略了它們。 – Maarx 2011-04-18 23:16:48
除了FlowLayout之外,還有另外一個佈局管理器可以做我正在尋找的東西嗎? (從一行開始,換行到第二個,向上展開組件) – Maarx 2011-04-18 23:19:26
「所以在調整大小之後,您必須重新包裝邊框佈局。」我將在哪裏插入一些代碼來運行「調整大小後」? – Maarx 2011-04-18 23:35:40