swing开发中问题总结

下拉列表事件:

	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);


对jSpinner相关操作

	 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();
            }
        });


jSpinner的model中参数说明

	四个参数分别为:当前值,第一个数,最后一个数,位移数


ThreadLocal理解:

ThreadLocal不是用来解决共享对象的多线程访问问题的,一般情况下,通过ThreadLocal.set()到线程
中的对象是该线程自己使用的对象,其他线程是不需要访问的,也访问不到的。各个线程访问的是不同的
对象。

你可能感兴趣的:(多线程,exception,swing,String,null,Integer)