[英]Scrolling inside a JTable cell in Swing
我有一个表格,每个单元格都包含一个图像。 如果图像大小大于行高,我添加了JScrollPane
。 现在,当我运行该应用程序时,每个单元格中都可以看到滚动条,但我无法滚动它。
我该怎么做?
下面是我用来添加滚动窗格的代码。
任何示例代码将不胜感激。
private final JTable table = new JTable(model)
{
@Override public Component prepareRenderer(TableCellRenderer tcr, int row, int column)
{
Component c = super.prepareRenderer(tcr, row, column);
if(isRowSelected(row))
{
c.setForeground(getSelectionForeground());
c.setBackground(getSelectionBackground());
}
else{
c.setForeground(getForeground());
c.setBackground((row%2==0)?evenColor:getBackground());
}
JScrollPane _pane=new JScrollPane(c);
table.setRowHeight(100);
return _pane;
}
};
为了能够滚动,请右键单击Jtable Autocreatecolumnfrommodel = false(停用)
为了能够将焦点设置在单元格上(以便您可以使用内部滚动窗格),您可以通过“编辑模式”获取它:
创建自定义单元格编辑器:
public class MyCustomCellEditor extends AbstractCellEditor implements TableCellEditor{ @Override public Component getTableCellEditorComponent(JTable table,Object value,boolean isSelected,int row,int column) { JScrollPane your_custom_panel=new JScrollPane(); return your_custom_panel; // your _pane } @Override public Object getCellEditorValue() { return null; }
把它放在你的桌子上:
table.setDefaultEditor(MyCustomCellValueType.class,new MyCustomCellEditor());
现在你只需要管理如何进入“编辑模式”,你应该能够在单元格内滚动。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.