最近 自己的小项目 中 使用的 java Swing / mysql 实用小技巧

最近帮忙做了一个java swing 的 项目。做到一半,我 突然有一种 为什么要用swing 不用 web 的自问。继续写吧。把遇到了的一些小细节记录一下,以后可能用得着也可能都不会用了。

JButton 设置 文本与边框的 距离

      默认 按钮与边缘是有一定距离的,当需要设置比较小的按钮时,就显示不出文字了,

     所以需要设置JButton.setMargin(new Insets(0, 0, 0, 0)); 这样就可以把按钮设置的很小,文字也全部显示出来

JTextField 只能输入特定的文字,数字,字母

     如果需要只输入特定的 类型,例如 只能输入数字 则可以  重写他的Document 来实现。

    JTextField.setDocument(new PlainDocument() {
                private static final long serialVersionUID = 1L;

                public void insertString(int offs, String str, AttributeSet a) throws BadLocationException {

                    if (str == null) {
                        return;
                    }

                    // 匹配数字,如果需要匹配其他的,可以自行设置。
                    if (!str.matches("[0-9]*")) {
                        return;
                    }
                    super.insertString(offs, str, a);
                }
            });

MySQL查询模糊查询按照 匹配度 排序

  替换后的长度 / 原来数据的长度 = 得到数据比例

select `name`,length(`pinyin`) as p ,length(`name`) as n ,
(length(replace(`pinyin`,'测试','')) / length(`pinyin`)) as n1,
(length(replace(`name`,'测试','')) / length(`name`)) as n2,
( 
  length(replace(`pinyin`,'测试','')) / length(`pinyin`) +
  length(replace(`name`,'测试','')) / length(`name`)
) as ln
from stock  
where `pinyin` like '%测试%' or `name` like '%测试%'
order by ln limit 2;

 

JScrollPane 滚动无法滚动或者滚动不好用

    检查一下 控件 是否存在 多层 JScrollPane 嵌套。删除一些 非必要的 JScrollPane 。滚动较慢 可以使用 myJScrollPane.getVerticalScrollBar().setUnitIncrement(20); 来提升速度

自定义List

使用  JPanel GridBagLayout  GridBagConstraints 使用 ArrayList 来记录数据。

你可能感兴趣的:(java,mysql,java,swing,mysql)