gpt4 book ai didi

java - JTable 行上的自定义导航

转载 作者:行者123 更新时间:2023-12-02 04:53:35 26 4
gpt4 key购买 nike

当我们在第一行按向上键时如何转到 JTable 中的最后一行,以及当我们在最后一行按向下键时如何转到第一行?就像 Enter 键一样,当我们在最后一行按 Enter 键时,它将转到第一行。

我已经完成了这个编码,但它只是将数据显示到文本字段:

private void jtKeyReleased(java.awt.event.KeyEvent evt) {                               
if(evt.getKeyCode()==KeyEvent.VK_DOWN ||evt.getKeyCode()==KeyEvent.VK_UP){
int row=jt.getSelectedRow();
String TableClick=(jt.getModel().getValueAt(row,0).toString());
try{
String sql="select Product,Roo,TotalStock from pro where
Product='"+TableClick+ "'";
PreparedStatement pst = (PreparedStatement)
conn.prepareStatement(sql);
ResultSet res = pst.executeQuery();
if(res.next()){
String add1=res.getString("Product");
proo.setText(add1);
// String add2=res.getString("Id");
//idd.setText(add2);
String add3=res.getString("Roo");
rooo.setText(add3);
String add4=res.getString("TotalStock");
stkk.setText(add4);
abc=res.getString("TotalStock");
}
} catch(Exception e) {
} //catch
} // if
}

最佳答案

您需要创建两个自定义操作:

  1. 一个 Action 从第一行换行到底部
  2. 另一个从下到上包裹的 Action。

最简单的方法是利用 JTable 中定义的现有操作。向上键一次向上移动一行,向下键一次向下移动一行。您还可以使用 CTRL+HOME 转到顶行,使用 CTRL_END 转到最后一行。

所以我建议从 UP Action 开始,修改它以实现 CTRL+END Action。最简单的方法是利用 Wrapping Actions 的概念。 。此类是现有 Action 的包装类,允许您添加自定义代码来增强 Action。

import java.awt.event.*;
import javax.swing.*;

public class UpAction extends WrappedAction implements ActionListener
{
private JTable table;
private Action endAction;

/*
* Specify the component and KeyStroke for the Action we want to wrap
*/
public UpAction(JTable table, KeyStroke keyStroke)
{
super(table, keyStroke);
this.table = table;
endAction = table.getActionMap().get("selectLastRow");
}

/*
* Provide the custom behaviour of the Action
*/
public void actionPerformed(ActionEvent e)
{
if (table.getSelectedRow() == 0)
endAction.actionPerformed( e );
else
invokeOriginalAction( e );
}

private static void createAndShowGUI()
{
JTable table = new JTable(7, 5);
new UpAction(table, KeyStroke.getKeyStroke("UP"));

JFrame frame = new JFrame("SSCCE");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add( new JScrollPane(table) );
frame.setLocationByPlatform( true );
frame.pack();
frame.setVisible( true );
}

public static void main(String[] args)
{
SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
createAndShowGUI();
}
});
}
}

您需要为 DOWN 功能创建类似的操作。请注意,用于选择第一行的操作字符串名称为:selectFirstRow。查看Key Bindings获取给定组件使用的所有操作的列表。

关于java - JTable 行上的自定义导航,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28997900/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com