Swing开发中在JTable单元格放JPanel组件

我想做一个单列表格。每一个单元格内容为一个JPanel对象。JPanel对象里面有按钮之类的组件。需要可以对这个单元格中的JPanel进行操作!希望高手能给予帮助。内容符... 我想做一个单列表格。每一个单元格内容为一个JPanel对象。JPanel对象里面有按钮之类的组件。需要可以对这个单元格中的JPanel进行操作!

希望高手能给予帮助。内容符合必定高分相赠!

谢谢!若这里不方便 可加本人QQ:339726288。加时注明~谢谢!!!
类似的图片。
展开
 我来答
怀新垒fb
推荐于2016-10-22 · TA获得超过378个赞
知道小有建树答主
回答量:391
采纳率:100%
帮助的人:362万
展开全部
//首先给QQ:7706189
//编辑器,我在JPanel上 了JTextField 和JButton
public class TextCellEditor extends javax.swing.AbstractCellEditor implements
javax.swing.table.TableCellEditor {
private JDialog parent;
private JPanel editPanel;
private JTextField editText;
private JButton editButton;
public TextCellEditor(JDialog d){
this.parent=d;
editPanel = new javax.swing.JPanel();
editButton = new javax.swing.JButton();
editText = new javax.swing.JTextField();
editButton.setText("*");
editButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
new GlossarySortDialog(parent,editText).setVisible(true);

}
});
editPanel.setLayout(new BorderLayout());
editPanel.add(editText,BorderLayout.CENTER);
editPanel.add(editButton,BorderLayout.EAST);
}
public Object getCellEditorValue() {
return editText.getText();
}
//重点:这个方法返回JPanel编辑器(包括JPanel上的其他控件)
public java.awt.Component getTableCellEditorComponent(
javax.swing.JTable table, Object value, boolean isSelected,
int row, int column) {
if (value == null)
editText.setText("");
else
editText.setText(value.toString());
//返回JPanel编辑器
return editPanel;
}
}

//=============
//表格的单元格用到了

public class TempColligateTicketDialog extends javax.swing.JDialog {
private javax.swing.JTable tableColligate;
private DefaultTableModel dTableModel;
private TextCellEditor textCell; //你要用的JPanel编辑器
....
....
/**
* 初始化表格
* @param strSql
*/
private void initTable() {
Object[][] body = null;
String[] head = null;
head = new String[]{"序号", "注意事项"};

dTableModel = new DefaultTableModel(body, head) {

boolean[] canEdit = new boolean[]{
false, true
};

public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit[columnIndex];
}
};
List list = SystemConstants.getOperationCardContent();
CardOperationStep cos = null;
if (list != null) {
for (int i = 0; i < list.size(); i++) {
cos = (CardOperationStep) list.get(i);
Object[] rowData = {i+1, cos.operationCont};
dTableModel.addRow(rowData);
}
}
tableColligate.setModel(dTableModel);
tableColligate.getColumnModel().getColumn(0).setMaxWidth(50);

//在表格的第2列加JPanel编辑器
tableColligate.getColumnModel().getColumn(1).setCellEditor(textCell);
}
....
.....
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f250164
2009-06-24
知道答主
回答量:54
采纳率:0%
帮助的人:0
展开全部
你的问题好难
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式