在JTable的特定列下對齊其他組件(如按鈕,標籤等)的方法是什麼?例如,我想在複選框的下方添加一個複選框,用於選擇該特定列中的所有值。JTable - 在列下方對齊組件
1
A
回答
6
,據我瞭解,中TableColumnModelListener使用,從適當調整大小事件和重新排序
import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.table.*;
public class TableFilterRow extends JFrame implements TableColumnModelListener {
private static final long serialVersionUID = 1L;
private JTable table;
private JPanel filterRow; // Panel for text fields
public TableFilterRow() {
table = new JTable(3, 5);
table.setPreferredScrollableViewportSize(table.getPreferredSize());
JScrollPane scrollPane = new JScrollPane(table);
getContentPane().add(scrollPane);
table.getColumnModel().addColumnModelListener(this);
filterRow = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 0));
for (int i = 0; i < table.getColumnCount(); i++) {
filterRow.add(new JTextField(" Sum at - " + i));
}
columnMarginChanged(new ChangeEvent(table.getColumnModel()));
getContentPane().add(filterRow, BorderLayout.SOUTH);
}
// Implement TableColumnModelListener methods
// (Note: instead of implementing a listener you should be able to
// override the columnMarginChanged and columMoved methods of JTable)
@Override
public void columnMarginChanged(ChangeEvent e) {
TableColumnModel tcm = table.getColumnModel();
int columns = tcm.getColumnCount();
for (int i = 0; i < columns; i++) {
JTextField textField = (JTextField) filterRow.getComponent(i);
Dimension d = textField.getPreferredSize();
d.width = tcm.getColumn(i).getWidth();
textField.setPreferredSize(d);
}
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
filterRow.revalidate();
}
});
}
@Override
public void columnMoved(TableColumnModelEvent e) {
Component moved = filterRow.getComponent(e.getFromIndex());
filterRow.remove(e.getFromIndex());
filterRow.add(moved, e.getToIndex());
filterRow.validate();
}
@Override
public void columnAdded(TableColumnModelEvent e) {
}
@Override
public void columnRemoved(TableColumnModelEvent e) {
}
@Override
public void columnSelectionChanged(ListSelectionEvent e) {
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
JFrame frame = new TableFilterRow();
frame.setDefaultCloseOperation(EXIT_ON_CLOSE);
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
});
}
}
1
相關問題
- 1. JTable頭對齊
- 2. Flex:左下對齊組件?
- 3. 在JTable列中設置正確的對齊方式
- 4. 在LinearLayout下方對齊RecyclerView
- 5. 使分頁組件和下拉對齊
- 6. 在RelativeLayout中對齊組件
- 7. 組件對齊java
- 8. JTabbedPane對齊組件
- 9. 基於值渲染器列對齊來設置JTable頭水平對齊
- 10. 左對齊方程組
- 11. 在輸入下方對齊文本
- 12. 在Chrome中對齊下拉列表
- 13. 中心將jtable對齊到jscrollpane
- 14. JTable內容是中心對齊的
- 15. 使用adf組件對齊組件
- 16. Jtable,爲每個行使用不同的對齊方式
- 17. 對齊TableRow中的組件
- 18. JavaFX HBox組件對齊
- 19. 以形式對齊組件
- 20. 如何左或右對齊JTable中的列標題
- 21. 設置JTable中列水平對齊,而無需使用DefaultTableCellRenderer
- 22. 在動畫結束時,組件對齊
- 23. 下拉式組合框不對齊
- 24. 在JMenu組件中設置標題文本的對齊方式
- 25. 文件列表未對齊
- 26. Taber over JTable組件
- 27. 對齊酥料餅到左下方
- 28. 下拉列表中的文本對齊
- 29. 下拉列表對齊問題(HTML/CSS)
- 30. 對齊問題與下拉列表
標題中的複選框怎麼樣? http://java-swing-tips.blogspot.de/2009/02/jtableheader-checkbox.html – Stephan 2012-08-02 13:25:06
你想把JComponent放在JTable下alingh它們與當前列的wight並且調整它們的大小或調整列大小或重新排列? – mKorbel 2012-08-02 15:26:07
我想把它們放在列的下方,並調整它們與調整大小 – Bober02 2012-08-02 16:12:11