2011-01-13 9 views
0

私は同じレイアウトを持つ必要がある2つのパネルをJavaに持っています。私の初期化パネル用の関数があります。GridBagConstraintsが左に移動してサイズが同じではない

private void InitializePanelCom(){ 
     pnlCom=new JPanel(); 
     pnlCom.setSize(300,160); 
     pnlCom.setLocation(10, 60); 
     add(pnlCom); 
     GridBagLayout gb=new GridBagLayout(); 
     GridBagConstraints gc=new GridBagConstraints(); 
     pnlCom.setLayout(gb); 

     jLabelcommPort = setJLabel("Com Port : "); 
     jLabelbaudRate = setJLabel("Baud Rate : "); 
     jLabelplcAddress = setJLabel("Plc Address : "); 
     jLabelsendTime = setJLabel("Send Time : "); 
     jLabelx50 = setJLabel(" x 50 ms (2 - 99)"); 
     jComboBoxcommPort = setJComboBox(commPortList); 
     jComboBoxbaudRate = setJComboBox(bitRateList); 
     jTextAreaPlcAddress = setJTextField(""); 
     jTextAreaSendTime = setJTextField(""); 

     gc.insets = new Insets(10,0,0,0); 
     gc.ipadx = 120; 
     gc.weightx = 1; 
     gc.gridx = 0; 
     gc.gridy = 0; 
     gc.anchor=GridBagConstraints.EAST; 
     pnlCom.add(jLabelcommPort,gc); 

     gc.insets = new Insets(10,0,0,0); 
     gc.ipadx = 120; 
     gc.weightx = 1; 
     gc.gridx = 1; 
     gc.gridy = 0; 
     gc.anchor=GridBagConstraints.EAST; 
     pnlCom.add(jComboBoxcommPort,gc); 

     gc.insets=new Insets(10,0,0,0); 
     gc.ipadx=120; 
     gc.weightx=1; 
     gc.gridx=0; 
     gc.gridy=1; 
     gc.anchor=GridBagConstraints.EAST; 
     pnlCom.add(jLabelbaudRate,gc); 


     gc.insets=new Insets(10,0,0,0); 
     gc.ipadx=120; 
     gc.weightx=1; 
     gc.gridx=1; 
     gc.gridy=1; 
     gc.anchor=GridBagConstraints.EAST; 
     pnlCom.add(jComboBoxbaudRate,gc); 

     gc.insets=new Insets(10,0,0,0); 
     gc.ipadx=120; 
     gc.weightx=1; 
     gc.gridx=0; 
     gc.gridy=2; 
     gc.anchor=GridBagConstraints.EAST; 
     pnlCom.add(jLabelplcAddress,gc); 


     gc.insets=new Insets(10,0,0,0); 
     gc.ipadx=120; 
     gc.weightx=1; 
     gc.gridx=1; 
     gc.gridy=2; 
     gc.anchor=GridBagConstraints.EAST; 
     pnlCom.add(jTextAreaPlcAddress,gc); 

     gc.insets=new Insets(10,0,0,0); 
     gc.ipadx=120; 
     gc.weightx=1; 
     gc.gridx=0; 
     gc.gridy=3; 
     gc.anchor=GridBagConstraints.EAST; 
     pnlCom.add(jLabelsendTime,gc); 


     gc.insets=new Insets(10,0,0,0); 
     gc.ipadx=120; 
     gc.weightx=1; 
     gc.gridx=1; 
     gc.gridy=3; 
     gc.anchor=GridBagConstraints.EAST; 
     pnlCom.add(jTextAreaSendTime,gc); 

     gc.insets=new Insets(10,0,0,0); 
     gc.ipadx=120; 
     gc.weightx=1; 
     gc.gridx=2; 
     gc.gridy=3; 
     gc.anchor=GridBagConstraints.EAST; 
     pnlCom.add(jLabelx50,gc); 
    } 
    ![alt text][1] 


private void InitializePanelTcp(){ 

     pnlTcp=new JPanel(); 
     pnlTcp.setSize(300,160); 
     pnlTcp.setLocation(10, 60); 
     add(pnlTcp); 
     GridBagLayout gb=new GridBagLayout(); 
     GridBagConstraints gc=new GridBagConstraints(); 
     pnlTcp.setLayout(gb); 


     lblIPAddress=setJLabel("IP Address : "); 
     txtIPAddress=setJTextField(""); 
     lblPort=setJLabel("Port : "); 
     txtPort=setJTextField(""); 

     cmbBaudRateTCP = setJComboBox(bitRateList); 
     lblBaudRateTCP = setJLabel("Baud Rate : "); 
     lblParityCheck=setJLabel("Parity check : "); 
     txtParityCheck=setJTextField(""); 



     gc.insets = new Insets(10,0,0,0); 
     //gc.ipadx = 20; 
     gc.weightx = 0.3; 
     gc.gridx = 0; 
     gc.gridy = 0; 
     gc.anchor=GridBagConstraints.WEST; 
     pnlTcp.add(lblIPAddress,gc); 

     gc.insets = new Insets(10,0,0,0); 
     //gc.ipadx = 80; 
     gc.weightx = 0.7; 
     gc.gridx = 1; 
     gc.gridy = 0; 
     gc.anchor=GridBagConstraints.WEST; 
     pnlTcp.add(txtIPAddress,gc); 

     gc.insets=new Insets(10,0,0,0); 
     //gc.ipadx=120; 
     gc.weightx=0.3; 
     gc.gridx=0; 
     gc.gridy=1; 
     gc.anchor=GridBagConstraints.WEST; 
     pnlTcp.add(lblPort,gc); 


     gc.insets=new Insets(10,0,0,0); 
     //gc.ipadx=80; 
     gc.weightx=0.7; 
     gc.gridx=1; 
     gc.gridy=1; 
     gc.anchor=GridBagConstraints.WEST; 
     pnlTcp.add(txtPort,gc); 

     gc.insets=new Insets(10,0,0,0); 
     //gc.ipadx=120; 
     gc.weightx=0.3; 
     gc.gridx=0; 
     gc.gridy=2; 
     gc.anchor=GridBagConstraints.WEST; 
     pnlTcp.add(lblBaudRateTCP,gc); 


     gc.insets=new Insets(10,0,0,0); 
     //gc.ipadx=0; 
     gc.weightx=0.7; 
     gc.gridx=1; 
     gc.gridy=2; 
     gc.anchor=GridBagConstraints.WEST; 
     pnlTcp.add(cmbBaudRateTCP,gc); 

     gc.insets=new Insets(10,0,0,0); 
     //gc.ipadx=120; 
     gc.weightx=0.3; 
     gc.gridx=0; 
     gc.gridy=3; 
     gc.anchor=GridBagConstraints.WEST; 
     pnlTcp.add(lblParityCheck,gc); 


     gc.insets=new Insets(10,0,0,0); 
     //gc.ipadx=0; 
     gc.weightx=1.7; 
     gc.gridx=1; 
     gc.gridy=3; 
     gc.anchor=GridBagConstraints.WEST; 
     pnlTcp.add(txtParityCheck,gc); 





    } 

alt text

alt text 問題は、パネル(initializetcp、画像は同じ、ラベルが左側に移動され、テキストボックスが小さく、醜い見ていない、それは異なっている)ということです。誰でも手伝ってもらえますか、私はGridBagContsraintsを初めて使っていますか?

答えて

2

通常、weightxやweightyを使用しているときは、fill制約も使用しています。gc.fill = GridBagConstraint.Horizo​​ntal;

たとえば、次のコードでは、使用可能な水平方向のスペースの50%を占めるようになります。

gc.weightx = 0.5; 
gc.fill = GridBagConstraint.Horizontal; 

実際にコードをテストすることはできませんが、試してみると問題が解決するはずです。 pack()にも電話するようにしてください。親コンストラクタの終わりに(私が想定しているJFrame)。あなたは私の最も深い同情を持って

+0

塗りを設定し、体重を設定します。まったく。 –

1

問題のあるパネルには、すべてipadx値の宣言がコメントとして表示されます。見栄えのよいパネルはありません。 //印を削除し、それが役立つかどうかを確認してください:)

+0

感謝。私はフォーラムをする前にそれを試しました(私はパネルのサイズを変更しようとしましたが、混ざっていますが、助けてくれませんでした)、ラベルはもう一度左にあります。良いパネルのようなラベルの配置方法は?そのためのタグは何ですか? – Damir

関連する問題