if (evt.getStateChange() == ItemEvent.SELECTED) { //当事件选中某一行数据时才触发 }
//表格排序 this.jTable1.setAutoCreateRowSorter(true); //表头不可拖动 this.jTable1.getTableHeader().setReorderingAllowed(false); //列大小不可改变 this.jTable1.getTableHeader().setResizingAllowed(false); 关于表格排序之后,获取表格中的数据时,要注意的问题: //选中的行数 int[] selectedRows = this.jTable1.getSelectedRows(); //获取表格中数据从jTable1中获得数据,不从MODEL中获得 SpaAuditlogBackup logBackup = (SpaAuditlogBackup)jTable1.getValueAt(selectedRow, 0);
在按钮的属性中设置参数:mnemonic(填写快捷键按钮) //设置默认按钮 getRootPane().setDefaultButton(okButton);
SpinnerNumberModel priModel = new SpinnerNumberModel(new Integer(500), new Integer(1), new Integer(1000), new Integer(1)); this.jSpinnerPri.setModel(priModel); JSpinner.NumberEditor priEditor = new JSpinner.NumberEditor(jSpinnerPri, "####"); jSpinnerPri.setEditor(priEditor); JFormattedTextField priTextField = ((JSpinner.NumberEditor) jSpinnerPri.getEditor()).getTextField(); priTextField.setEditable(true); DefaultFormatterFactory priFactory = (DefaultFormatterFactory) priTextField.getFormatterFactory(); NumberFormatter priFormatter = (NumberFormatter) priFactory.getDefaultFormatter(); priFormatter.setAllowsInvalid(false); //设置jSpinner禁止键盘输入并将其背景设为白色 yeartf.setEditable(false); yeartf.setBackground(Color.white);
//隐藏返回选项卡 this.jTabbedPane1.removeTabAt(2);
public static String format(String str) { return str.replace("\\", "\\").replace("'","\'"); }
public static boolean allWhite(String s) { //过滤所有空格\ if (s.indexOf(" ") != -1) { String s2 = s.replaceAll(" ", "").trim(); System.out.println("去掉空格后:" + s2); return true; } else { System.out.println("没有空格"); return false; } } public static String removeAllWhite(String s) { //过滤所有空格 if (s.indexOf(" ") != -1) { String s2 = s.replaceAll(" ", " ").trim(); System.out.println("去掉空格后:" + s2); return s2; } return s; }
捕获创建文件时的异常,将特殊字符给排除掉! try{ if(dbFile.exists()) { dbFile.delete(); } dbFile.createNewFile(); fileOut = new FileOutputStream(dbFile); }catch(Exception e){ MessageUtil.warningMessage(null, "文件名不能包含下列任何字符之一:\n \\ / : * ? \" < > |", null); backupDatabase.getOkButton().setEnabled(true); return; }
addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { isCanceled = true; dispose(); } });
四个参数分别为:当前值,第一个数,最后一个数,位移数
ThreadLocal不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set()到线程 中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程访问的是不同的 对象。