减少jpanel的大小

时间:2016-12-17 09:50:51

标签: java swing layout-manager grid-layout jradiobutton

我有一个带有 GridLayout(3,0)的框架。这3行有3个不同的面板。
面板-1:

    JScrollPane 中的
  • JTextArea

面板-2:(BoxLayout.Y_AXIS)

  • 4个带有FlowLayout的JPanel,每个JPanel由一个JRadioButton组成 b)JTextField

面板-3:

  • 一个简单的JButton


如图所示,我为每个面板提供了不同的背景颜色。 我的目标是减少每个JPanel的大小以适应内容。

JPanels layout

代码:

private static JFrame f;
private static JPanel p1,p2,p3;
private static JPanel rbtf[];
private static ButtonGroup bg;
private static JRadioButton jb[];   
private static JTextField tf[];

private static JTextArea qtn;
private static JScrollPane sp;
private static JButton submitbtn,nextbtn,prevbtn;   

public static void build(JFrame frame){
    f=frame;    
    f.setLayout(new GridLayout(3, 0));
    p1=new JPanel();
    p1.setSize(600, 100);
    p1.setBackground(Color.BLUE);
    p2=new JPanel();
    p2.setLayout(new BoxLayout(p2,BoxLayout.Y_AXIS));
    p2.setSize(600, 200);
    p2.setBackground(Color.RED);
    p3=new JPanel();
    p3.setBackground(Color.RED);
    p3.setSize(600, 100);
    rbtf=new JPanel[4];
    jb=new JRadioButton[4];
    bg=new ButtonGroup();
    tf=new JTextField[4];

    qtn=new JTextArea(3,45);        
    sp=new JScrollPane(qtn);        
    p1.add(sp);

    for(int i=0;i<4;i++){
        jb[i]=new JRadioButton();
        tf[i]=new JTextField(10);           
        rbtf[i]=new JPanel();
        rbtf[i].setLayout(new FlowLayout());
        rbtf[i].setBackground(Color.GRAY);
        bg.add(jb[i]);  
        rbtf[i].add(jb[i]);
        rbtf[i].add(tf[i]);
        p2.add(rbtf[i]);
    }

    submitbtn = new JButton("ADD QUESTION");
    p3.add(submitbtn);      

    f.getContentPane().add(p1);f.getContentPane().add(p2);f.getContentPane().add(p3);
    f.setVisible(true);
    f.setSize(new Dimension(600, 400));
    f.setLocationRelativeTo(null);
  }
}

0 个答案:

没有答案