2

withJListsの等量のスペースを埋める必要がある 2 つがあります。現在、次のようになっています。JPanelGridBagLayout

ここに画像の説明を入力

画像が示すようにJList、ほとんどのコンテンツがより多くのスペースを獲得しています。それらに等しいスペースを与えようとしました:

bgConstraints.weightx = 0.5;

しかし、私が望んでいたようにうまくいかないようです。コンテンツと JFrame のサイズについて2 つを独立しJListsて同じにする方法はありますか (必要以上に広くはなりません)。width

import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;

import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;

public class GridBagTest {

    public static void main(String[] arg){
        JPanel panel = new JPanel(new GridBagLayout());
        GridBagConstraints c = new GridBagConstraints();
        c.fill = GridBagConstraints.BOTH;
        c.weightx = 0.5;
        c.weighty = 1;
        panel.add(getList(2),c);
        panel.add(getList(10),c);

        // Show content
        JFrame frame = new JFrame();
        frame.add(panel);
        frame.pack();
        frame.setVisible(true);
    }

    /**
     * Creates a JList
     * @param strLength The length of the String in the List
     * @return A JList with a String and JScrollPane
     */
    private static JScrollPane getList(int strLength){
        DefaultListModel<String> listModel = new DefaultListModel<String>();  
        JList<String> list = new JList<String>(listModel);

        String str = "";
        for(int i=0; i<strLength; i++)
            str += i;

        listModel.addElement(str);
        JScrollPane pane = new JScrollPane(list);
        return pane;
    }
}
4

1 に答える 1

3

使用する

于 2013-07-04T07:36:48.030 に答える