我需要在Java NetBeans中的Jtable中的每个单元格中禁用双击编辑。JTable连接到sqlite数据库,并显示数据库表记录。
private void DisplayTable() {
try{
Class.forName("org.sqlite.JDBC");
Connection conn=DriverManager.getConnection("jdbc:sqlite:clientrec.sqlite");
String sql = "SELECT * FROM client";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
t1.setModel(DbUtils.resultSetToTableModel (rs));
}
catch (Exception e){
JOptionPane.showMessageDialog(null, e);
} finally{
try{
rs.close();
pst.close();
}
catch(Exception e){
}
}
}
我还为jtable创建了onmouseclick事件,以便在Jtextfields、combobox、jcalendar中显示所选内容
private void t1MouseClicked(java.awt.event.MouseEvent evt) {
// TODO add your handling code here:
DefaultTableModel model=(DefaultTableModel) t1.getModel();
int number=t1.getSelectedRow();
String tc=t1.getModel().getValueAt(number, 0).toString();
try{
Class.forName("org.sqlite.JDBC");
Connection conn=DriverManager.getConnection("jdbc:sqlite:clientrec.sqlite");
String sql = "SELECT * FROM client WHERE ID="+tc+"";
pst = conn.prepareStatement(sql);
rs = pst.executeQuery();
if(rs.next()){
String id=rs.getString("ID");
String fullname=rs.getString("FullName");
String phone=rs.getString("Phone");
String allergy=rs.getString("Allergy");
String date=rs.getString("Date1");
String budgetpayed=rs.getString("BudgetPayed");
String totalbudget=rs.getString("TotalBudget");
String budgetleft=rs.getString("BudgetLeft");
String currency=rs.getString("Currency");
String datea=rs.getString("Dateappointment");
String description=rs.getString("Description");
FullName.setText(fullname);
Phone.setText(phone);
Allergy.setText(allergy);
((JTextField)Date1.getDateEditor().getUiComponent()).setText(date);
BudgetP.setText(budgetpayed);
TBudget.setText(totalbudget);
BudgetL.setText(budgetleft);
Curr.setSelectedItem(currency);
((JTextField)Date2.getDateEditor().getUiComponent()).setText(datea);
Desc.setText(description);
}
}catch (Exception ex){
JOptionPane.showMessageDialog(null, ex);
}
}
重写JTable
的iscelleditable(...)
方法:
JTable table = new JTable(...)
{
@Override
public boolean isCellEditable(int row, int column)
{
return false;
}
};
问题内容: 我有一个JTable,我想用自定义渲染器尝试检查isEnabled()的所有禁用的复选框单元变灰,然后更改背景颜色,但仍然无法使用。有什么建议么?谢谢!!! 问题答案: 如“ 概念:编辑器和渲染器 ”中所述,“通常使用单个单元格渲染器来绘制包含相同类型数据的所有单元格。” 您需要维护表模型中的enabled状态。 附录:作为一个具体示例,此示例中的数据模型是一组简单的Date实例。ge
问题内容: 我应该如何禁用只一列拖动JTable?我想允许其他列拖动,但只允许第一列(索引为0)。谢谢。 问题答案: 您应该能够创建自己的(扩展DefaultTableColumnModel),并且应该重写为仅在允许拖动列时调用。
问题内容: 我不知道如何对齐JTable中单元格的值。 例如,Jtable显示姓名工资X.先生100000.50 XXXX 234.34 YYYy 1205.50 我想以以下格式对齐“薪水”。 如何在JTable上方对齐 问题答案: 无需为此创建自定义类,只需使用默认渲染器即可: 或者更好的方法是在表中实际存储Double值,然后使用适当的数字渲染器,数字渲染器将自动右对齐。然后,您可以使用表格格
我有一个JTable对象,我会在一个列上添加5个不同的JComboBox。 我已经尽力了: 但这会将相同的JComboBox添加到该列的所有单元格中。如何在同一列中添加不同的内容? 非常感谢。
问题内容: 我有我的自定义单元格渲染器,想删除单元格的边框。 我该怎么做?我试过setBorder,但是不起作用。 这是我的渲染器代码: 问题答案: 单元格之间绘制的线不是单元格本身的一部分。它们是由桌子绘制的。您可以使用以下方法在整个表格中将其关闭: 要仅禁用水平或垂直线: 或者,您可以使用以下方法更改线条的颜色:
问题内容: 我有此代码从如何突出显示jtable中的多个单元格: 但是,当我用它突出显示一个单元格时,它会执行错误的操作,就像丢失整个数据一样。Iam是Java Swing的新手。请帮助使单元格在按钮按下动作事件中突出显示。 更新:添加我的示例代码: 我想要的是单击按钮,我只想突出显示单元格编号1(Row1-Column1)。 问题答案: 我使用此类来设置JTables的样式 创建此类的实例,并将