界面开发

                        界面开发总结
java的图形界面有  java.awt  java.swing
一.Swing在javax中,主要总结swing包中的组件:
1.JFrame   窗体容器组件类
1)JFrame构造器主要用两种:JFrame() 和 JFrame(String title) 。2.JPanel     面板容器组件类
1)JPanel构造器:JPanel()。
2)JPanel经常用于布局中。
3)可以添加mousemotionlistener和mouselistener事件。
4)可以添加键盘事件。
5)要为JPanel里的组件添加流式布局(FlowLayout),比如说要让他里面的组件左对齐,记住这样不管用:p.add(l,FlowLayout.LEFT)(其中p为JPanel,l为一个JLabel)。要使l靠左对齐,我们需要 这样:p.setLayout(new FlowLayout(FlowLayout.LEFT));
6)画图时经常继承JPanel,然后重写paint方法。
3.JLabel    标签
1)JLabel构造器:JLabel()和JLabel(String text)和JLabel(Icon image) 。用最后一个构造器去插入图片:JLabel lb = new JLabel(new ImageIcon("D:\\wendang\\5.jpg"));
2)JLabel.setText()和JLabel.getText()去操作JLabel上的文本。
3)setBackground()和setForeground(),前者用于设置JLabel的背景色,后者用于设置JLabel上的前景色。
4.JButton   按钮
1)JButton构造器:JButton() 和JButton(String text) 和JButton(Icon icon)。
2)添加addActionListener,去监听按钮事件。有两种方法匿名类和内部类两种方法。
5.JTextField   单行文本
1)JTextField构造器:JTextField() 。
2)可以设置字体或者字体颜色。
3)可以设置他中的文本对齐方式。
4)利用setText()和getText()可以设置其中的文本。
5)添加addActionListener监听器去监听文本的改变。
6.JTextArea 
1)构造器:JTextArea(int rows, int columns) 和 JTextArea(String text, int rows, int columns)。
2)要使JTextArea按滚动条规范显示,经常将JTextArea放在JScrollPane,例如:JTextArea jta=new JTextArea(5,10);
                JScrollPane jsp=new JScrollPane(jta);
                jf.add(jta);
注意JScrollPane的构造器。JScrollPane(Component view),创建一个显示指定组件内容的 JScrollPane,只要组件的内容超过视图大小就会显示水平和垂直滚动条。
3)往里面追加内容用append方法
4)jtextarea 一般往jscrollpane中放,因为会有滚动条。
7.JMenuBar  其功能是用来创建一个水平菜单栏。
1)构造器:JMenuBar()。
2)菜单是一级一级的,JMenuBar是最高的一层,然后是JMenu,然后是JMenuItem。
3)JMenuBar中只能添加Menu,JMenu中可以添加JMenuItem,也可以添加JMenu(菜单中嵌套菜单);
4)JMenuItem中添加actionListener监听事件。
5)JFrame中添加JMenubar为jf.setJMenuBar(jmb)。要添加下级为jmb.add(m1);
m1.add(mi1)。
注意在其中要添加帮助菜单一般这样设置:
jmb.setHelpMenu(JMenu menu)。
8.JFileChooser   用来提供一个文件对话框
1)构造器:JFileChooser().
2)记住他的三个方法:showSaveDialog(Component parent)和showOpenDialog(Component parent)和getSelectedFile() 。其中第一,二个方法分别是打开和保存对话框,第三个返回的是选中的文件,返回值为File。

JTextField   它允许编辑单行文本
1) 构造器:
JTextField()构造一个新的 TextField。 ​
JTextField(Document doc, String text, int columns)
构造一个新的 JTextField,它使用给定文本存储模型和给定的列数。 ​
JTextField(int columns)
构造一个具有指定列数的新的空 TextField。 ​
JTextField(String text)
构造一个用指定文本初始化的新 TextField。 ​
JTextField(String text, int columns)
构造一个用指定文本和列初始化的新 TextField。

通过添加 TextEvent 的 TextListener,可以监视 java.awt.TextField 的更改。
JComboBox 下拉框
JCheckBox 复选框
二.Java常用的布局类
BorderLayout 边框布局类
FlowLayout 流式布局类
GridLayout 网格布局类
在平时使用的过程中应多在API文档中查找相应组建的方法等。
练习:实现QQ登录界面
      实现计算器界面
主要代码如下:

/***************开始北边区域的面板*****************/
//实例化一个面板对象
JPanel northPanel = new JPanel();
//设置morthPanel的大小
northPanel.setPreferredSize(new Dimension(0,110));
//将面板组件添加到窗体的北边
this.add(northPanel,BorderLayout.NORTH);
/***************结束北边区域的面板******************/
//调用创建西边面板的对象,获取西边面板对象
JPanel westPanel = westPanel();
//将面板组件添加到窗体的西边
this.add(westPanel,BorderLayout.WEST);
     JPanel southPanel = southPanel();
this.add(southPanel,BorderLayout.SOUth);
     JPanel centerPanel = centerPanel();
this.add(centerPanel,BorderLayout.CENTER);
   /将我们添加到窗体上的面板全部设置为透明
northPanel.setOpaque(false);
westPanel.setOpaque(false);
centerPanel.setOpaque(false);
southPanel.setOpaque(false);
//设置窗体为可见
this.setVisible(true);
}

/**
* 创建西边的面板对象
* @return 返回西边面板对象
*/
private JPanel westPanel(){
/***************开始西边区域的面板*****************/
//实例化一个面板对象
JPanel westPanel = new JPanel();
//设置westPanel的大小
westPanel.setPreferredSize(new Dimension(110,0));
//设置西边面板的布局方式为流布局靠右显示
westPanel.setLayout(new FlowLayout(FlowLayout.RIGHT));

//创建图表对象
ImageIcon image = new ImageIcon("images1/jpi2.png");
//显示到标签上
JLabel jlaImage = new JLabel(image);
//将标签添加到西边面板上
westPanel.add(jlaImage);

/***************结束西边区域的面板******************/

return westPanel;
}

/**
* 添加图片背景的方法
* @param 图片路径
*/
public void addBackgroundImage(String path){
//实例化一个图标对象
ImageIcon image = new ImageIcon("images1/1.jpg");
//让标签来显示图标
JLabel jla = new JLabel(image);
//设置jla组件的大小
jla.setBounds(0,0,image.getIconWidth(), image.getIconHeight());
//将jia组件添加到窗体的第二层面板上
this.getLayeredPane().add(jla,new Integer(Integer.MIN_VALUE));

//设置窗体的第一层面板为透明
((JPanel)this.getContentPane()).setOpaque(false);
}

/**
* 创建南边面板的方法
* @return 返回创建的南边面板
*/
private JPanel southPanel(){
/***************开始南边区域的面板*****************/
//实例化一个面板对象
JPanel southPanel = new JPanel();
//设置南边面板的布局方式为流布局靠右显示,采用JPanel的默认布局方式
//southPanel.setLayout(new FlowLayout());

JButton jbu = new JButton("登      录");
jbu.setPreferredSize(new Dimension(155,35));
southPanel.add(jbu);

/***************结束西边区域的面板******************/

return southPanel;
}

/**
* 创建中间面板的方法
* @return 返回创建好的中间面板对象
*/
public JPanel centerPanel(){
JPanel centerPanel = new JPanel();
centerPanel.setOpaque(false);
centerPanel.setLayout(new java.awt.FlowLayout(java.awt.FlowLayout.LEFT));
    javax.swing.JComboBox jco = new javax.swing.JComboBox();
    jco.setEditable(true);
    jco.setPreferredSize(new Dimension(166, 25));
    centerPanel.add(jco);
    javax.swing.JButton jbuReg = new javax.swing.JButton("注册账号");
    centerPanel.add(jbuReg);
    javax.swing.JPasswordField jpa = new javax.swing.JPasswordField();
    jpa.setPreferredSize(new Dimension(166, 25));
    centerPanel.add(jpa);
    javax.swing.JButton jbuPwd = new javax.swing.JButton("找回密码");
    centerPanel.add(jbuPwd);
    javax.swing.JCheckBox jch1 = new javax.swing.JCheckBox("记住密码");
    javax.swing.JCheckBox jch2 = new javax.swing.JCheckBox("自动登录");
    centerPanel.add(jch1);
    centerPanel.add(jch2);

return centerPanel;
}

}
计算器:
private JPanel northPanel(){
/***************开始北边区域的面板*****************/

//实例化一个面板对象
JPanel northPanel = new JPanel();
//设置northPanel的大小
northPanel.setPreferredSize(new Dimension(0,67));
//设置西边面板的布局方式为流布局
northPanel.setLayout(new FlowLayout());

//实例化一个文本款对象
javax.swing.JTextField jte =new javax.swing.JTextField();

//设置文本框的大小
jte.setPreferredSize(new Dimension(390,60));
//将文本框对象添加到面板上
northPanel.add(jte);



/***************结束北边区域的面板******************/
return northPanel;
}
private JPanel centerPanel(){
/************开始中间区域****************/
//实例化一个面板对象
JPanel centerPanel=new JPanel();
//设置面板的布局
centerPanel.setLayout(new GridLayout(4,4,10,13));
//实例化按钮对象
javax.swing.JButton j1=new javax.swing.JButton("1");
//设置事件源的动作命令
j1.setActionCommand("Calculator");
//给事件源添加一个动作监听器方法,绑定事件处理类的对象
j1.addActionListener(a);


//将按钮对象添加到面板上
centerPanel.add(j1);
javax.swing.JButton j2=new javax.swing.JButton("2");
j2.addActionListener(a);

centerPanel.add(j2);
javax.swing.JButton j3=new javax.swing.JButton("3");
j3.addActionListener(a);
centerPanel.add(j3);
javax.swing.JButton ja=new javax.swing.JButton("+");
ja.addActionListener(a);

centerPanel.add(ja);
javax.swing.JButton j4=new javax.swing.JButton("4");
j4.addActionListener(a);

centerPanel.add(j4);
javax.swing.JButton j5=new javax.swing.JButton("5");
j5.addActionListener(a);

centerPanel.add(j5);

javax.swing.JButton j6=new javax.swing.JButton("6");
j6.addActionListener(a);

centerPanel.add(j6);
javax.swing.JButton jb=new javax.swing.JButton("-");
jb.addActionListener(a);

centerPanel.add(jb);
javax.swing.JButton j7=new javax.swing.JButton("7");
j7.addActionListener(a);

centerPanel.add(j7);
javax.swing.JButton j8=new javax.swing.JButton("8");
j8.addActionListener(a);

centerPanel.add(j8);
javax.swing.JButton j9=new javax.swing.JButton("9");
j9.addActionListener(a);

centerPanel.add(j9);
javax.swing.JButton jc=new javax.swing.JButton("*");
jc.addActionListener(a);

centerPanel.add(jc);
javax.swing.JButton jg=new javax.swing.JButton("delete");
jg.addActionListener(a);
jg.setPreferredSize(new Dimension(200,50));

centerPanel.add(jg);
javax.swing.JButton je=new javax.swing.JButton("0");
je.addActionListener(a);

centerPanel.add(je);
javax.swing.JButton jf=new javax.swing.JButton(".");
jf.addActionListener(a);

centerPanel.add(jf);
javax.swing.JButton jd=new javax.swing.JButton("/");
centerPanel.add(jd);

/************结束中间区域****************/
return centerPanel;
}
private JPanel eastPanel(){
/***************开始东边区域***************/
//实例化一个面板对象
JPanel eastPanel=new JPanel();
//设置面板的布局
eastPanel.setLayout(new GridLayout(4,1,10,13));
//实例化一个按钮对象
javax.swing.JButton jx=new javax.swing.JButton("cos");

jx.addActionListener(a);
//将按钮对象添加到面板上
eastPanel.add(jx);
javax.swing.JButton jy=new javax.swing.JButton("sin");
jy.addActionListener(a);

eastPanel.add(jy);
javax.swing.JButton jw=new javax.swing.JButton("tan");
jw.addActionListener(a);

eastPanel.add(jw);
javax.swing.JButton jz=new javax.swing.JButton("=");
jz.addActionListener(a);

eastPanel.add(jz);
/***************结束东边区域***************/
return eastPanel;
}

你可能感兴趣的:(开发)