在一个JTextField里面,我写了事件,如果里面输入的Value不符合条件,则光标一直在这个JTextField里面,
不能移动到别的JTextField里面,如何让焦点一直在JtextField?谢谢!
不能移动到别的JTextField里面,如何让焦点一直在JtextField?谢谢!
解决方案 »
- 请教一个很简单的正则表达式问题
- 学java请进
- 为何结果为-100
- 请问大家如何获取本机系统信息?
- 关于throws和try catch 的一点疑惑
- 紧急求助:如何用SWT打印报表
- 简单问题:怎理解Connection conn=DriverManager.getConnection();这句
- 很怪的问题,估计大家都没遇到过
- 谁能给我详细的解释一下resin,包括它的功能、用途、安装以及用法。对我有帮助者一定高分相送
- 谁能告诉我如何将一个汉字 如 "网"转化为"网"
- 如何删除文件中指定的数据
- 请问,我在netbeans 5.51开发环境中,利用jTable组件构建了一个表格,是4列的,数据库是sql server2000,里面创建一个数据库名字是wenxian,然后
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JTextField;public class Test { public static void main(String args[]) {
JFrame jf = new JFrame();
JTextField jtf1 = new JTextField();
JTextField jtf2 = new JTextField();
jtf1.setColumns(10);
jtf2.setColumns(10);
jf.add(jtf1);
jf.add(jtf2);
jf.setLayout(new FlowLayout());
jf.setSize(400, 150);
jf.setVisible(true);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
while (true) {
jtf1.requestFocus();
}
}}
JTextField tf_panme=new JTextField();
tf_pname.setInputVerifier(new InputVerifier() { @Override
public boolean verify(JComponent input) {
try {
JTextField tf = (JTextField) input;
if (tf.getText().equalsIgnoreCase("")) {
setStatus("姓名不能为空!");
return false;
}
} catch (NumberFormatException e) {
setStatus("格式不正确,应为整数!");
return false;
}
return true;
}
});
按照上面各位的方法还是不行,是不是需要验证Jtable一个单元格
里面的的值,如果不符合,就不让光标移出这格单元格?
private JTextField editor;
private TableColumn tc;主要代码: model = new DefaultTableModel(data, Header) {
public boolean isCellEditable(int rowindex,
int columnindex) {
String strtmp = (String)table.getValueAt(rowindex,1);
int row = rowindex;
if (strtmp.equals("C")){
if ((rowindex==row)&&(columnindex>2)){
return false;
}
}
return true;
}
};
//JTable table = new JTable(model);
table = new JTable(model);
JScrollPane jsp = new JScrollPane(table); colmodel = table.getColumnModel();
//=========Set the table Cell Width ================
colmodel.getColumn(0).setPreferredWidth(100);
colmodel.getColumn(1).setPreferredWidth(10);
colmodel.getColumn(2).setPreferredWidth(100);
colmodel.getColumn(3).setPreferredWidth(100);
//=========set the Cell for Textfield ================
for (int index = 2; index < 6; index++) {
tc = colmodel.getColumn(index);
editor = new JTextField();
MyCellEditor celleditor = new MyCellEditor(editor);
celleditor.setClickCountToStart(0);
tc.setCellEditor(celleditor);
}
//======这一部分生成JTextField的约束
class MyCellEditor extends DefaultCellEditor {
public MyCellEditor(JTextField textField) {
super(textField);
// TODO Auto-generated constructor stub
} public boolean stopCellEditing() {
//return true;
int row = table.getSelectedRow();
int col = table.getSelectedColumn();
if ((row==0)&&(col==2)){
String value = (String)this.getCellEditorValue();
editor.setInputVerifier(new InputVerifier() {
//@Override
public boolean verify(JComponent input) {
try {
JTextField tf = (JTextField)input;
if (tf.getText().equalsIgnoreCase("")) {
//setStatus("wqeq");
JOptionPane.showMessageDialog(null,"Error Format.");
return false;
}
} catch (NumberFormatException e) {
//setStatus("qweq!");
JOptionPane.showMessageDialog(null,"Error Format.");
return false;
}
return true;
}
});
JOptionPane.showMessageDialog(null,"Error Format.");
}
return super.stopCellEditing();
}
}还是不行,大家帮忙呀
textField.setInputVerifier(new InputVerifier(){
public boolean verify(JComponent component){
JTextField field=(JTextField)component;
return isValid(field.getText());
}
});
[/code]试试这样,isValid是你的判断输入合法性的函数
public boolean verify(JComponent component){
JTextField field=(JTextField)component;
return isValid(field.getText());
}
});
试试这样,isValid是你的判断输入合法性的函数