我用Google搜索了一整天,没有运气.getnPrintAllData()
按OK按钮后调用方法.所以代码是:
public class DatabaseSQLiteConnection {
Connection conn = null;
PreparedStatement statement = null;
ResultSet res = null;
public DatabaseSQLiteConnection(){
try{
Class.forName("org.sqlite.JDBC");
conn = DriverManager.getConnection("jdbc:sqlite:test.sqlite");
statement = conn.prepareStatement("SELECT * from product_info;");
}
catch(Exception e){
e.printStackTrace();
}
}
public void getnPrintAllData(){
String name, supplier, id;
DefaultTableModel dtm = new DefaultTableModel();
Window gui = new Window(); //My JPanel class
try{
res = statement.executeQuery();
testResultSet(res);
ResultSetMetaData meta = res.getMetaData();
int numberOfColumns = meta.getColumnCount();
while (res.next())
{
Object [] rowData = new Object[numberOfColumns]; …
Run Code Online (Sandbox Code Playgroud) 我想删除DefaultTable的所有行.我发现了两种在Internet上删除它们的常用方法,但在我的情况下它们都不起作用,因为我的DefaultTableModel中不存在这些方法.我想知道为什么:S.我使用DefaultTableModel的代码是
DefaultTableModel Table =(DefaultTableModel)Table.getModel();
删除的一种方法是
Table.removeRow(Table.getRowCount() - 1);
但是这个removerow方法在我的DefaultTableModel中不存在.
请帮帮我.
我有一个需要JTree
更新节点的Java SE 7应用程序.从使用此线程的Oracle提供的教程中,没有给出关于如何在代码上更新标签(树上节点的显示文本)的提示.目前我DefaultTreeModel
用作我的模型JTree
和DefaultMutableTreeNode
所述树的节点.
为了进一步详细说明我正在处理的应用程序,我正在开发一个聊天工具,其中显示的联系人每个帐户的可用性状态(无论是在线,离线等).
问题是,如何更新特定节点的显示文本,而不是(最多)将其从父节点中删除,并将其添加到指定的索引上.喜欢DefaultMutableTreeNode.setText("<new label>")
?
更新:2013年1月20日
重新定义问题以便澄清.
在我的JTable中,我想使用右键单击选项重命名表头.在右键单击任何标题时,它提供重命名标题的选项.但是当我这样做时,它将重命名所选列的标题.所以我必须先左键单击该列然后我可以进一步处理.有没有什么方法,当我右键单击任何列时,它也被选中,以便重命名后它的值被重命名.
我的动作监听器如下:
int column = jTable1.getSelectedColumn();
if (column == -1) {
return;
}
if (column == 0) {
JOptionPane.showMessageDialog(jTable1, "You can not rename this column.");
return;
}
boolean blag = true;
String sColumnName = null;
while (blag) {
sColumnName = (String) JOptionPane.showInputDialog(jTable1, "Enter Column Name", "Add Column", JOptionPane.INFORMATION_MESSAGE, null, null, null);
if (sColumnName == null) {
return;
}
if (sColumnName.trim().equalsIgnoreCase("")) {
JOptionPane.showMessageDialog(jTable1, "Column name can not be blank.");
blag = true;
} else {
blag = false;
}
Vector vColumns …
Run Code Online (Sandbox Code Playgroud) 我上课了;
public class A extends AbstractTableModel
{
...
}
Run Code Online (Sandbox Code Playgroud)
使用ResultSetMetaData我构建TableModel以匹配数据库中的结果集.
public class B extends JPanel
{
...
}
Run Code Online (Sandbox Code Playgroud)
在B类中,我扩展了JPanel并添加了A类来显示我的表.我希望能够根据条件向表模型添加新列.我试过谷歌搜索,但大多数示例显示是基于DefaultTableModel
不AbstractTableModel
.
有谁知道如何实现这一目标?
当我尝试从java中的表中删除行时,我遇到了一些问题.特别是,我使用DefaultTableModel
,当我尝试删除行时,使用该removeRow(int row)
方法,最后一行被删除,无论是什么row
.例如,假设我们有六行.当removeRow(0)
或removeRow(2)
或removeRow(5)
叫,最后一行是始终去除.任何想法,为什么会这样?
谢谢
---更新
当按下jtable的特定单元格时,应移除相应的行.
class TagsTableMA extends MouseAdapter {
@Override
public void mousePressed(MouseEvent e){
Point p = e.getPoint();
int row = tagsJT.rowAtPoint(p);
int column = tagsJT.columnAtPoint(p);
if (column == COLUMN_DELETE_TAG){
DocDialog docDialog = new DocDialog(parentMainJF,
true,
null,
"Please confirm...",
"Are you sure you want to delete the \"" +
tagsJT.getValueAt(row, COLUMN_TAG_NAME) +
"\" tag?",
DocDialog.TYPE_YES_NO);
docDialog.show();
int answer = docDialog.getAnswer();
if (answer == DocDialog.YES)
model.removeRow(row);
}
} …
Run Code Online (Sandbox Code Playgroud) 我在我的代码中重写了JTable类的isCellEditable()方法,使我的JTable的单元格不可编辑但可选,但单元格仍然可编辑.我该如何解决这个问题?
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class A extends JTable{
JFrame frame = new JFrame();
Object data[][] = {{"1","Jahanzeb"},{"2","Ahmed"},{"3","Shaikh"}};
String col[] = {"#","Names"};
DefaultTableModel tableModel = new DefaultTableModel(data, col);
JTable table = new JTable(tableModel);
JScrollPane scroll = new JScrollPane(table);
public static void main(String arg[]){
new A();
}
public A() {
table.addMouseListener(new Click());
table.setModel(tableModel);
frame.setSize(500,500);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(scroll);
frame.add(table);
frame.setVisible(true);
}
@Override
public boolean isCellEditable(int row, int column){
return false;
}
class Click extends …
Run Code Online (Sandbox Code Playgroud) 我有一个JTable,模型实例化为:
TableModel ss = new DefaultTableModel(myArray[][], myHeaderArray[]);
Run Code Online (Sandbox Code Playgroud)
生成数组的位置.但是,目前,您仍然可以编辑单元格.我怎么能阻止这个?
谢谢!
我有一个JTable,我想有时按整数(大小列)排序行,有时候按字符串(文件路径)排序.所以我在谷歌搜索它,我来到这里.我已经知道我要覆盖一个名为getColumnClass的DefaultTableModel方法.所以我在这里链接我的代码.
class Personal_model extends DefaultTableModel{
Personal_model(String[][] s,String[] i){
super(s,i);
}
@Override
public Class<?> getColumnClass(int columnIndex){
if (columnIndex!=2)
return String.class;
else
return Integer.class;
}
}
Run Code Online (Sandbox Code Playgroud)
这里是通过模型'Personal_model'创建表的代码; 我还设置了roworter.但是这一切都不起作用!!!!! 帮帮我吧
modeltable = new Personal_model(data,col);
table = new JTable(modeltable);
table.setRowSorter(new TableRowSorter<Personal_model>(modeltable));
Run Code Online (Sandbox Code Playgroud)
通常情况下,没有我的排序器,所有都是完整的可视化,并且字符串被正确排序(很明显,因为通常它都按字符串排序..)
我有一个JAVA项目,并希望使用DefaultTableModel使我的JTable不可编辑.我知道一个解决方法,称为:
JTable table = new JTable(...){
public boolean isCellEditable(int row, int column){
return false;
}
};
Run Code Online (Sandbox Code Playgroud)
喜欢说:我不喜欢这个.这不符合我学校的训练规则.
有没有办法做到这一点?也许有一个好方法.希望如此!