jradioButton,jinternalFrame1 ,jinternalFrame2
这三个组件我老是调不好窗口的位置,请大虾们指教。
package examples;import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;import javax.swing.ButtonGroup;
import javax.swing.Icon;
import javax.swing.JButton;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JRadioButton;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;public class MakeJInternalFrame {
JFrame jFrame = new JFrame();
JInternalFrame jInternalFrame1 = new JInternalFrame("单一理由");
JInternalFrame jInternalFrame2 = new JInternalFrame("同一理由");
JDesktopPane jDesktopPane = new JDesktopPane();
JPanel jPanel = new JPanel();
JButton jButton = new JButton("确定");
JTextArea jTextArea = new JTextArea(5,5);
JRadioButton jRadioButton1 = new JRadioButton("使用统一理由");
JRadioButton jRadioButton2 = new JRadioButton("使用单一理由");
JPanel jPanel2 = new JPanel();

public MakeJInternalFrame(){ jInternalFrame1.setVisible(true);
// jInternalFrame1.setSize(600, 600);


jInternalFrame2.setVisible(true);
jInternalFrame2.setSize(600, 600);

jPanel.setLayout(new BorderLayout());
jTextArea.setLineWrap(true);
jTextArea.setLineWrap(true);
JScrollPane jScrollPane = new JScrollPane(jTextArea);
jPanel.add(jTextArea,BorderLayout.CENTER);
jPanel.add(jButton,BorderLayout.SOUTH);

jInternalFrame1.setLayout(new GridLayout(1,1));
jInternalFrame1.add(jPanel);
jInternalFrame2.setLayout(new GridLayout(1,1));



jDesktopPane.setLayout(new GridLayout());
jDesktopPane.add(jInternalFrame1);
jDesktopPane.add(jInternalFrame2);
jDesktopPane.setSize(1000, 600);
ButtonGroup buttonGroup = new ButtonGroup();
buttonGroup.add(jRadioButton1);
buttonGroup.add(jRadioButton2);
jPanel2.add(jRadioButton1);
jPanel2.add(jRadioButton2);    
jFrame.setLayout(new GridLayout(2,1));
jFrame.add(jPanel2);
jFrame.add(jDesktopPane);
jFrame.setVisible(true);
jFrame.setBounds(300,150, 550,550);




}

public static void main(String[] args) {
new MakeJInternalFrame();

}
}

解决方案 »

  1.   

    import java.awt.BorderLayout;
    import java.awt.FlowLayout;
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;import javax.swing.ButtonGroup;
    import javax.swing.Icon;
    import javax.swing.JButton;
    import javax.swing.JDesktopPane;
    import javax.swing.JFrame;
    import javax.swing.JInternalFrame;
    import javax.swing.JLabel;
    import javax.swing.JPanel;
    import javax.swing.JRadioButton;
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
    import javax.swing.JTextField;public class MakeJInternalFrame {
    JFrame jFrame = new JFrame();
    JInternalFrame jInternalFrame1 = new JInternalFrame("单一理由");
    JInternalFrame jInternalFrame2 = new JInternalFrame("同一理由");
    JDesktopPane jDesktopPane = new JDesktopPane();
    JPanel jPanel = new JPanel();
    JButton jButton = new JButton("确定");
    JTextArea jTextArea = new JTextArea(5,5);
    JRadioButton jRadioButton1 = new JRadioButton("使用统一理由");
    JRadioButton jRadioButton2 = new JRadioButton("使用单一理由");
    JPanel jPanel2 = new JPanel(); public MakeJInternalFrame(){ jInternalFrame1.setVisible(true);
    // jInternalFrame1.setSize(600, 600); jInternalFrame2.setVisible(true);
    jInternalFrame2.setSize(600, 600); jPanel.setLayout(new BorderLayout());
    jTextArea.setLineWrap(true);
    jTextArea.setLineWrap(true);
    JScrollPane jScrollPane = new JScrollPane(jTextArea);
    jPanel.add(jTextArea,BorderLayout.CENTER);
    jPanel.add(jButton,BorderLayout.SOUTH); jInternalFrame1.setLayout(new GridLayout(1,1));
    jInternalFrame1.add(jPanel);
    jInternalFrame2.setLayout(new GridLayout(1,1)); jDesktopPane.setLayout(new GridLayout());
    jDesktopPane.add(jInternalFrame1);
    jDesktopPane.add(jInternalFrame2);
    jDesktopPane.setSize(1000, 600); ButtonGroup buttonGroup = new ButtonGroup();
    buttonGroup.add(jRadioButton1);
    buttonGroup.add(jRadioButton2); jPanel2.add(jRadioButton1);
    jPanel2.add(jRadioButton2); jFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    jFrame.add(jPanel2,BorderLayout.NORTH);
    jFrame.add(jDesktopPane,BorderLayout.CENTER);
    //jFrame.setLocationRelativeTo(null);
    //jFrame.pack();
    jFrame.setBounds(300,150, 550,550);
    jFrame.setVisible(true);
    } public static void main(String[] args) {
    new MakeJInternalFrame();
    }
    }
      

  2.   

    就是我用GridLayout布局器部署两个组件在一个窗口,不想让他们平均分配所占空间,不知道怎样控制
      

  3.   

    GridLayout就是分的一样大小的,
    你要用不一样的大小的,可以选择GridBagLayout
      

  4.   

    gridlayout 网格布局 ,每个网格一样大小  不一样就选择不同布局  
      

  5.   

    GridBagLayout 一直都用这个 
    soPanel.add(soLabel,
                    new GridBagConstraints(0, 0, 1, 1, 0.0, 0.0,
                                           GridBagConstraints.EAST,
                                           GridBagConstraints.NONE,
                                           new Insets(5, 5, 5, 0), 0, 0));