- ------<a href="http://www.itheima.com" target="blank">Java培训、Android培训、iOS培训、.Net培训</a>、期待与您交流! -------
----java图形化界面
创建图形化界面的步骤:
1,创建frame窗体。
2,对窗体进行基本设置,比如大小,位置,布局。
3,定义组件。
4,将组件通过窗体的add方法添加到窗体中。
5,让窗体显示,通过setVisible(true)。
事件监听机制的特点:
1,事件源。
2,事件。
3,监听器。
4,事件处理。
事件源:就是awt包或者swing包中的那些图形界面组件。
事件:每一个事件源都有自己特有的对应事件和共性事件。
监听器:将可以触发某一个事件的动作(不只一个动作)都已经封装到了监听器中。
以上三者,在java中都已经定义好了,直接获取其对象来用就可以了,我们要做的事情是,就是对产生的动作进行处理。
2,对窗体进行基本设置,比如大小,位置,布局。
3,定义组件。
4,将组件通过窗体的add方法添加到窗体中。
5,让窗体显示,通过setVisible(true)。
事件监听机制的特点:
1,事件源。
2,事件。
3,监听器。
4,事件处理。
事件源:就是awt包或者swing包中的那些图形界面组件。
事件:每一个事件源都有自己特有的对应事件和共性事件。
监听器:将可以触发某一个事件的动作(不只一个动作)都已经封装到了监听器中。
以上三者,在java中都已经定义好了,直接获取其对象来用就可以了,我们要做的事情是,就是对产生的动作进行处理。
import java.awt.*;
import java.awt.event.*;
class MouseAndKeyEvent
{
private Frame f;
private Button but;
private TextField tf;
MouseAndKeyEvent()
{
init();
}
public void init()
{
f = new Frame("my frame");
f.setBounds(300,100,600,500);
f.setLayout(new FlowLayout());
tf = new TextField(20);
but = new Button("my button");
f.add(tf);
f.add(but);
myEvent();
f.setVisible(true);
}
private void myEvent()
{
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
tf.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
int code = e.getKeyCode();
if(!(code>=KeyEvent.VK_0 && code<=KeyEvent.VK_9))
{
System.out.println(code+".....是非法的");
e.consume();
}
}
});
//给But添加一个键盘监听。
but.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
if(e.isControlDown()&&e.getKeyCode()==KeyEvent.VK_ENTER)
//System.exit(0);
System.out.println("ctrl+enter is run");
//System.out.println(KeyEvent.getKeyText(e.getKeyCode())+"...."+e.getKeyCode());
}
});
/*
but.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.out.println("action ok");
}
});
*/
/*
but.addMouseListener(new MouseAdapter()
{
private int count = 1;
private int clickCount = 1;
public void mouseEntered(MouseEvent e)
{
System.out.println("鼠标进入到该组件"+count++);
}
public void mouseClicked(MouseEvent e)
{
if(e.getClickCount()==2)
System.out.println("双击动作"+clickCount++);
}
});
*/
}
public static void main(String[] args)
{
new MouseAndKeyEvent();
}
}
----如何制作可以双击执行的jar包:
1,将多个类封装到了一个包(package)中。
2,定义一个jar包的配置信息。
定义一个文件a.txt 。文件内容内容为:
Main-Class:(空格)包名.类名(回车)
3,打jar包。
jar -cvfm my.jar a.txt 包名
4,通过winrar程序进行验证,查看该jar的配置文件中是否有自定义的配置信息。
5,通过工具--文件夹选项--文件类型--jar类型文件,通过高级,定义该jar类型文件的打开动作的关联程序。
jdk\bin\javaw.exe -jar
6,双击就可以了!。
----正则表达式
好处:正则表达式的出现,对字符串的复杂操作变得更为简单。
特点:将字符串操作的字节码用一些符号来表示。只要使用了指定的符号,就可以调用底层的代码对字符串进行操作。符号的出现,简化了代码的书写。
弊端:符号的出现虽然简化了书写,但是却降低了阅读性。
常见的操作:
1.匹配:其实用的就是String类中的matches方法。
String reg="[1-9][0-9]{4,14}";
boolean b=qq.matches(reg);//将正则表达式和字符串关联对字符串进行匹配。
2.切割:其实用的就是String类中的split方法。
3.替换:其实用的就是String类中的replaceAll方法。
4.获取:
1).先要将正则表达式编译成正则对象,使用的是Pattern中的静态方法compile(regex)。
2).通过pattern对象获取Matcher对象(Pattern用于描述正则表达式,可以对正则表达式进行解析,而将规则操作字符串,需要从新封装到匹配器对象Matcher中,然后使用Matcher对象的方法操作字符串。调用pattern对象中的matcher方法可以返回一个匹配器对象。)
3).使用Matcher对象中的方法即可对字符串进行各种正则操作。
组的概念:
用小括号标示,每定义一个小括号,就是一个组,而且自动编号,从1开始.只要使用组,对应的数字就是该组的内容。注意,数组要加\\。
(aaa(wwww(ccc))(ddd))技巧,从左括号开始数,有几个左括号就是几组。
用于处理字符串中有叠词的情况。
(.)\1+表示第一个元素为任意字符,第二个元素为和第一个相同的字符(其中1代表取的是前面的第几组,+代表这个字符出现了一次或者多次)。