f.setVisible(true);
//设置流式布局
f.setLayout(new FlowLayout());
// 设置窗体大小和位置
f.setBounds(400, 200, 400, 300);
// 获取文本框的值
String tf_str = tf.getText().trim();
// 清空数据
tf.setText("");
// 设置给文本域
// ta.setText(tf_str);
// 追加和换行
ta.append(tf_str + "\r\n");
//获取光标
tf.requestFocus();
// 添加按钮到容器
f.add(redButton);
//设置背景颜色
f.setBackground(Color.RED);
//设置是否可以用户改变窗体大小
this.setResizable(false);
//对话框
JOptionPane.showMessageDialog(this, "恭喜你登录成功");
//换皮肤
UIManager.setLookAndFeel();
//窗体跳转
NewJFrame njf = new NewJFrame(username);
njf.setVisible(true);
this.dispose();
事件监听机制:
A:事件源 事件发生的地方
B:事件 就是要发生的事情
C:事件处理 就是针对发生的事情做出的处理方案
D:事件监听 就是把事件源和事件关联起来
//适配器模式 /* * 问题: * 接口(方法比较多) -- 实现类(仅仅使用一个,也得把其他的实现给提供了,哪怕是空实现) * 太麻烦了。 * 解决方案: * 接口(方法比较多) -- 适配器类(实现接口,仅仅空实现) -- 实现类(用哪个重写哪个) */ public class UserDaoDemo { public static void main(String[] args) { UserDao ud = new UserDaoImpl(); ud.add(); // 我没有说我们需要四种功能都实现啊。 UserDao ud2 = new UserDaoImpl2(); ud2.add(); } } ------------------------------------------------ /* * 针对用户操作的四种功能 */ public interface UserDao { public abstract void add(); public abstract void delete(); public abstract void update(); public abstract void find(); } ----------------------------------------------- public abstract class UserAdapter implements UserDao { @Override public void add() { } @Override public void delete() { } @Override public void update() { } @Override public void find() { } } ------------------------------------------------ public class UserDaoImpl2 extends UserAdapter { @Override public void add() { System.out.println("添加功能"); } }
/* * 需求:把按钮添加到窗体,并对按钮添加一个点击事件。 * A:创建窗体对象 * B:创建按钮对象 * C:把按钮添加到窗体 * D:窗体显示 */ public class FrameDemo { public static void main(String[] args) { // 创建窗体对象 Frame f = new Frame("添加按钮"); // 设置属性 f.setBounds(400, 200, 400, 300); // 设置布局为流式布局 f.setLayout(new FlowLayout()); // 创建按钮对象 Button bu = new Button("点我啊"); // bu.setSize(20, 10); // 把按钮添加到窗体 f.add(bu); // 设置窗体可以关闭 f.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); bu.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.out.println("你再点试试"); } }); // 窗体显示 f.setVisible(true); } }
/* * 你输入的如果是非数字字符,就取消你键盘录入的效果。 */ public class FrameDemo { public static void main(String[] args) { // 创建窗体对象并设置属性 Frame f = new Frame("不能输入非数字字符"); f.setBounds(400, 200, 400, 300); f.setLayout(new FlowLayout()); // 创建Label标签对象 Label label = new Label("请输入你的QQ号码,不能是非数字,不信你试试"); TextField tf = new TextField(40); // 添加到窗体上 f.add(label); f.add(tf); // 设置窗体关闭 f.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); // 给文本框添加事件 tf.addKeyListener(new KeyAdapter() { @Override public void keyPressed(KeyEvent e) { // 如果你取得的字符不是数字字符就取消事件 // 思路:先获取字符,判断字符,取消事件 // char getKeyChar() char ch = e.getKeyChar(); // System.out.println(ch); if(!(ch>='0' && ch<='9')){ e.consume(); } } }); // 设置窗体可见 f.setVisible(true); } }
/* * 一级菜单 */ public class FrameDemo { public static void main(String[] args) { // 创建窗体对象并设置属性 Frame f = new Frame("一级菜单"); f.setBounds(400, 200, 400, 300); f.setLayout(new FlowLayout()); // 创建菜单栏 MenuBar mb = new MenuBar(); // 创建菜单 Menu m = new Menu("文件"); // 创建菜单项 MenuItem mi = new MenuItem("退出系统"); // 谁添加谁呢 m.add(mi); mb.add(m); // 设置菜单栏 f.setMenuBar(mb); // 设置窗体关闭 f.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); mi.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.exit(0); } }); // 设置窗体可见 f.setVisible(true); } }
/* * 多级菜单 */ public class FrameDemo { public static void main(String[] args) { // 创建窗体对象并设置属性 final Frame f = new Frame("多级菜单"); f.setBounds(400, 200, 400, 300); f.setLayout(new FlowLayout()); final String name = f.getTitle(); // 创建菜单栏 MenuBar mb = new MenuBar(); // 创建菜单 Menu m1 = new Menu("文件"); Menu m2 = new Menu("更改名称"); // 创建菜单项 final MenuItem mi1 = new MenuItem("好好学习"); final MenuItem mi2 = new MenuItem("天天向上"); MenuItem mi3 = new MenuItem("恢复标题"); MenuItem mi4 = new MenuItem("打开记事本"); MenuItem mi5 = new MenuItem("退出系统"); // 谁添加谁呢 m2.add(mi1); m2.add(mi2); m2.add(mi3); m1.add(m2); m1.add(mi4); m1.add(mi5); mb.add(m1); // 设置菜单栏 f.setMenuBar(mb); // 设置窗体关闭 f.addWindowListener(new WindowAdapter() { @Override public void windowClosing(WindowEvent e) { System.exit(0); } }); mi1.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { f.setTitle(mi1.getLabel()); } }); mi2.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { f.setTitle(mi2.getLabel()); } }); mi3.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { f.setTitle(name); } }); mi4.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { Runtime r = Runtime.getRuntime(); try { r.exec("notepad"); } catch (IOException e1) { e1.printStackTrace(); } } }); mi5.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { System.exit(0); } }); // 设置窗体可见 f.setVisible(true); } }
/** * 专门做界面效果的类 * * @author Administrator */ public class UiUtil { private UiUtil() { } //修改窗体的图标 public static void setFrameImage(JFrame jf) { //获取工具类对象 //public static Toolkit getDefaultToolkit():获取默认工具包。 Toolkit tk = Toolkit.getDefaultToolkit(); //根据路径获取图片 Image i = tk.getImage("src\\cn\\itcast\\resource\\user.jpg"); //给窗体设置图片 jf.setIconImage(i); } public static void setFrameImage(JFrame jf,String imageName) { //获取工具类对象 //public static Toolkit getDefaultToolkit():获取默认工具包。 Toolkit tk = Toolkit.getDefaultToolkit(); //根据路径获取图片 Image i = tk.getImage("src\\cn\\itcast\\resource\\"+imageName); //给窗体设置图片 jf.setIconImage(i); } //设置窗体居中 public static void setFrameCenter(JFrame jf) { /* 思路: A:获取屏幕的宽和高 B:获取窗体的宽和高 C:(用屏幕的宽-窗体的宽)/2,(用屏幕的高-窗体的高)/2作为窗体的新坐标。 */ //获取工具对象 Toolkit tk = Toolkit.getDefaultToolkit(); //获取屏幕的宽和高 Dimension d = tk.getScreenSize(); double srceenWidth = d.getWidth(); double srceenHeigth = d.getHeight(); //获取窗体的宽和高 int frameWidth = jf.getWidth(); int frameHeight = jf.getHeight(); //获取新的宽和高 int width = (int) (srceenWidth - frameWidth) / 2; int height = (int) (srceenHeigth - frameHeight) / 2; //设置窗体坐标 jf.setLocation(width, height); } }