2015-09-07 40 views
0

我想要設置jbuttonjdate chooser = 2單元的寬度gridbaglayout。我嘗試在我的代碼中使用weightx,weighty,gridwidth,gridweight來設置大小jbuttonjdatechooser但不能。不能更改gridbaglayout中的大小元素

這是jdatechooser庫。

這我的代碼:

import java.awt.Dimension; 
import java.awt.GridBagConstraints; 
import java.awt.GridBagLayout; 
import java.awt.Insets; 
import java.awt.Toolkit; 

import javax.swing.JButton; 
import javax.swing.JComboBox; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JPanel; 
import javax.swing.JTable; 

import com.toedter.calendar.JDateChooser; 

public class SearchRoomFrm extends JFrame { 

final private String[] listTypeRoom = { "thường", "hạng trung", "VIP" }; 

private JDateChooser txtStartDate; 
private JDateChooser txtEndDate; 
private JComboBox cbTypeRoom; 
private JButton btnSearchRoom; 
private JTable tbRoom; 
private JButton btnXong; 

public SearchRoomFrm() { 
    super("Search Room"); 
    txtStartDate = new JDateChooser(); 
    txtEndDate = new JDateChooser(); 
    cbTypeRoom = new JComboBox(listTypeRoom); 
    btnSearchRoom = new JButton("Search"); 
    tbRoom = new JTable(); 
    btnXong = new JButton("Xong"); 

    JPanel content = new JPanel(); 
    content.setLayout(new GridBagLayout()); 

    GridBagConstraints c = new GridBagConstraints(); 
    c.fill = GridBagConstraints.BOTH; 
    c.insets = new Insets(5, 5, 5, 5); 

    // Row 1 
    c.gridx = 0; 
    c.gridy = 0; 
    content.add(new JLabel("Start date: "), c); 

    c.gridx = 1; 
    content.add(txtStartDate, c); 

    c.gridx = 2; 
    content.add(btnSearchRoom, c); 

    // Row 2 
    c.gridx = 0; 
    c.gridy = 1; 
    content.add(new JLabel("End date: "), c); 

    c.gridx = 1; 
    content.add(txtEndDate, c); 

    // Row 3 
    c.gridx = 0; 
    c.gridy = 2; 
    content.add(new JLabel("Type room: "), c); 

    c.gridx = 1; 
    content.add(cbTypeRoom, c); 

    // Row 4 
    c.gridx = 3; 
    c.gridy = 3; 
    content.add(tbRoom, c); 

    this.setContentPane(content); 
    this.pack(); 
    Dimension dimension = Toolkit.getDefaultToolkit().getScreenSize(); 
    int x = (int) ((dimension.getWidth() - this.getWidth())/2); 
    int y = (int) ((dimension.getHeight() - this.getHeight())/2); 
    this.setLocation(x, y); 

} 

public static void main(String[] args) { 
    SearchRoomFrm frm = new SearchRoomFrm(); 
    frm.setVisible(true); 
} 
} 
+0

設置寬度是什麼?你嘗試過「填充」嗎? – MadProgrammer

+0

@MadProgrammer我是newbiew並遵循https://docs.oracle.com/javase/tutorial/uiswing/layout/gridbag.html,但對於我的情況,我無法更改大小,您可以編輯我的代碼來設置大小的JButton到2個單元格。 – Hoang

回答

0

你的意思是這樣......

enter image description here

這是使用類似實現...

c.gridx = 2; 
c.gridheight = 2; 
content.add(btnSearchRoom, c); 
c.gridheight = 1; 
+0

http://i.imgur.com/nceeylk.png 我的理想是類似的圖片。要做到這一點,我必須添加第一行是單元格的標題和設置大小,因爲我認爲第一行的大小將決定下面的單元格行的大小。 非常感謝您的幫助:D – Hoang