java的图形界面初学惯用
1、单一界面的创建
public void mainFrame() { HashMap<String, Component> views = new HashMap<String, Component>(); JFrame jf = new JFrame("title"); // 实例化一个JFrame对象 jf.setSize(500,300); // 设置窗体大小位置 jf.setLayout(null);//无布局 jf.setResizable(false);//不可最大小化 jf.setIconImage(new ImageIcon("image/abc.jpg").getImage());//图标 // 设置窗体关闭方式 jf.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); jf.setVisible(true); // 使窗体可视 //窗体居中 Dimension s = Toolkit.getDefaultToolkit().getScreenSize(); jf.setLocation((s.width - jf.getWidth()) / 2, (s.height - jf.getHeight()) / 2); //各种组件和容器 JPanel panel; JLabel label; JTextField tfield; JButton button; JComboBox<String> combox; //... //第一个容器 panel = new JPanel(); panel.setBounds(0, 0, 1000, 40); //容器内布局 panel.setLayout(new FlowLayout(FlowLayout.LEFT)); //容器加到窗体 jf.add(panel); //第一个组件JLabel label = new JLabel("我是Label"); //组件加到容器 panel.add(label); //第二个组件JTextField tfield = new JTextField(22); tfield.setFont(new Font("", 0, 16)); // tfield.setEditable(false); panel.add(tfield); //把需要操作的组件加到HashMap<String, Component>,方便调用 views.put("txt_code", tfield); //后继增加... }
2、常用操作方法
字符串常用操作 length() //获取字符串的长度 startsWith(Strings)、endsWith(String s) //判断字符串的前缀或后缀与已知字符串是否相同前缀 equals(String s) //比较两个字符串 Integer.parseInt(字符串) Long.parseLong(字符串) Folat.valueOf(字符串).floatValue() Double.valueOf(字符串).doubleValue() //把字符串强制转换 valueOf(数值) //将数值转化为字符串 字符串检索: indexOf(Srting s) //从头开始检索 indexOf(String s ,int startpoint) //从startpoint处开始检索,如果没有检索到,将返回-1 字符串截取: substring(int startpoint) //从startpoint处开始获取 substring(int start,int end) //从start到end中间的字符 替换字符串中的字符: replace(char old,char new) //用new替换old 分析字符串 StringTokenizer(String s) //构造一个分析器,使用默认分隔字符(空格,换行,回车,Tab,进纸符) StringTokenizer(String s,String delim) //delim是自己定义的分隔符 nextToken() //逐个获取字符串中的语言符号 boolean hasMoreTokens() //只要字符串还有语言符号将返回true,否则返回false countTokens() //得到一共有多少个语言符号 文本框和文本区 文本框 TextField() //构造文本框,一个字符长、TextField(int x) 构造文本框,x个字符长 TextField(String s) //构造文本框,显示s、setText(String s) 设置文本为s getText() //获取文本 setEchoChar(char c) //设置显示字符为c setEditable(boolean) //设置文本框是否可以被修改 addActionListener() //添加监视器 removeActionListener() //移去监视器 文本区 TextArea() //构造文本区 TextArea(String s) //构造文本区,显示s TextArea(String s,int x,int y) //构造文本区,x行,y列,显示s TextArea(int x,int y) //构造文本区,x行,y列 TextArea(String s,int x,ing y,int scrollbar) scrollbar的值是: TextArea.SCROLLBARS_BOTH;TextArea.SCROLLBARS_VERTICAL_ONLY TextArea.SCROLLBARS_HORIZONTAL_ONLY;TextArea.SCROLLBARS_NONE setText(String s) //设置文本为s;getText() 获取文本 addTextListener() //添加监视器;removeTextListener() 移去监视器 insert(String s,int x) //在x处插入文本s replaceRange(String s,int x,int y) //用s替换从x到y处的文本 append(String s) //在文本的最后追加文本s Int getCaretPosition(int n) //获取文本区中光标的位置 按钮 Button() //构造按钮 Button(String s) //构造按钮,标签是s setLabel(String s) //设置按钮标签是s getLabel() //获取按钮标签 addActionListener() //添加监视器 removeActionListener() //移去监视器 标签 Label() //构造标签 Label(String s) //构造标签,显示s Label(String s,int x) //x是对齐方式,取值:Label.LEFT;Label.RIGHT;Label.CENTER setText(String s) //设置文本s getText() //获取文本 setBackground(Color c) //设置标签背景颜色 setForeground(Color c) //设置字体颜色 选择框 Checkbox() //构造选择框 Checkbox(String s) //构造选择框,给定标题s Checkbox(String s,boolean b) //b设定初始状态 Checkbox(String s,boolean b,CheckboxGroup g) //g设定了所属的组(有了组就成为单选框) addItemListener() //添加监视器 removeItemListener() //移去监视器 getState() //返回选择框的是否选中状态 setState(boolean b) //设置选择框的状态 getLabel() //获取选择框的标题 setLabel(String s) //设置选择框的标题为s 选择控件 Choice() //构造选择控件 add(String s) //向选择控件增加一个选项 addItemListener() //添加监视器 removeItemListener() //移去监视器 getSelectedIndex() //返回当前选项的索引 getSelectedItem() //返回当前选项的字符串代表 insert(String s,int n) //在n处插入选项s remove(int n) removeAll() 滚动列表 List() //构造滚动列表 List(int n) //参数n是可见行数 List(int n,boolean b) //参数b是设置是否可以多项选择 add(String s) //向列表的结尾增加一个选项 add(String s,int n) //在n处增加一个选项 AddActionListener() //滚动列表添加监视器 addItemListener() //滚动列表上的选项添加监视器 remove(int n) //删除n初的选项 remnoveAll() //删除全部选项 getSelectedIndex() //返回当前选项的索引 getSelectedItem() //返回当前选项的字符串代表 组件类的一些常用方法 void setBackground(Color c) //设置组件背景颜色 void setForeground(Color c) //设置组件前景颜色 void setFonts(Font f) //设置组件字体 void setBounds(int x,int y,int w,int h) //设置坐标,x,y表示在容器中坐标,w,h表示宽和高 void setLocation(int x,int y) //移动到x,y 处;void setSize(int w,int h) 设置宽和高 void setVisible(boolean b) //设置组建是否可见 int getBounds().wigth //获取宽 int getBounds().height //获取高 int getBounds().x //获取x 坐标; 注意 1). 要固定JComboBox大小有两个地方需要关注的。 1、你的JComboBox放的面板的布局是什么类型的布局,如果不是null布局就调整布局来给JComboBox分配合适的大小。 2、如果你用的是空布局的话,那么用setSize方法 或者 setBounds方法,来改变JComboBox大小setBounds可以改变控件的大小和位置。 2). Java中setBounds和setSize有什么区别:bounds就是size和location的结合体
3、有些组件setSize不起作用时,用setPreferredSize,例如button.setPreferredSize(new Dimension(60, 22));
4、表格一般用模型创建,方便更新管理:
JTable table; DefaultTableModel model = new DefaultTableModel(); //默认模型 model.setColumnIdentifiers(new Object[] {"a","b","c"}); //表头 table = new JTable(model); JScrollPane scrollPaner = new JScrollPane(table); scrollPaner.setBounds(0, 0, 985, 500); panel.add(scrollPaner);
表格数据的清除和更新:
//获得表格的默认模型 DefaultTableModel model = (DefaultTableModel) table.getModel(); // 清空表格 while (model.getRowCount() > 0) { model.removeRow(model.getRowCount() - 1); } //表格的数据插入 model.addRow(new Object[] { "a", "b", "c"}); //通知表格更新 model.fireTableDataChanged();
5、消息提示框
//以下都是一个确定按钮的弹出框 JOptionPane.showMessageDialog(null, "提示内容"); //蓝色反叹号,标题为“消息” JOptionPane.showMessageDialog(null, "内容", "标题", JOptionPane.ERROR_MESSAGE); //错误提示,只要一个按钮 JOptionPane.showMessageDialog(null, "警告提示框", "标题",JOptionPane.WARNING_MESSAGE); JOptionPane.showMessageDialog(null, "错误提示框", "标题",JOptionPane.ERROR_MESSAGE); JOptionPane.showMessageDialog(null, "最基本提示框", "标题",JOptionPane.PLAIN_MESSAGE);//没有图标 //以下带有自定义选择按钮的选择提示框,按钮和提示消息均可自定义 /*showOptionDialog(Component parentComponent, Object message, String title, int optionType, int messageType, Icon icon, Object[] options, Object initialValue); * 选择对话框OptionDialog是一个充分由用户自定义的对话框,showOptionDialog是一个8个参数的方法,参数“Object[] options”定义了一个按钮数组集合, * 每个按钮对应的返回值是其在数组中的下标,当参数“Object[] options”不空时,参数“int optionType”和“int messageType”作用不大, * 参数“Object initialValue”确定了默认选中的按钮。*/ JOptionPane.showConfirmDialog(null, "询问提示框", "标题",JOptionPane.YES_NO_OPTION); //返回值为0或1 Object[] options ={ "按钮1", "按钮2" }; //自定义按钮 JOptionPane.showOptionDialog(null, "询问提示框", "标题",JOptionPane.YES_NO_OPTION, JOptionPane.QUESTION_MESSAGE, null, options, options[0]); //showInoutDialog可以做成带有下拉选择列表或者输入框的提示框,并可以将用户选择或者输入信息返回 Object[] obj2 ={ "a", "b", "c" }; //下拉内容 String str = (String) JOptionPane.showInputDialog(null,"请选择", "标题", JOptionPane.PLAIN_MESSAGE, new ImageIcon("图标"), obj2, "b"); JOptionPane.showInputDialog(null,"请输入:\n","title",JOptionPane.PLAIN_MESSAGE);