窗口实训1
package day39; import java.awt.*; import javax.swing.*; public class windows { JFrame jf; JPanel jp,jp1; JButton jb; JTextField jt; JLabel jl; public windows(){ jf=new JFrame("计算器"); jp=new JPanel(new GridLayout(4,4)); jt=new JTextField(10); jf.add(jt,BorderLayout.NORTH); for(int i=7;i<=9;i++){ jp.add(new JButton(""+i)); } jp.add(new JButton("/")); for(int i=4;i<7;i++){ jp.add(new JButton(""+i)); } jp.add(new JButton("*")); for(int i=1;i<4;i++){ jp.add(new JButton(""+i)); } jp.add(new JButton("-")); jp.add(new JButton("0")); jp.add(new JButton(".")); jp.add(new JButton("=")); jp.add(new JButton("+")); jf.add(jp,BorderLayout.CENTER); jf.add(jp); jf.setSize(400,300); jf.setVisible(true); } public static void main(String[] args ){ new windows(); } }
package day39; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.*; public class windows1 { JFrame jf; JPanel jp,jp1; JButton jb,jb1,jb2; JTextField jt; JLabel jl; public windows1(){ jf=new JFrame(); jp=new JPanel(); jp1=new JPanel(new FlowLayout()); jb=new JButton("红色"); jb.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { jp.setBackground(Color.red); } }); jb1=new JButton("绿色"); jb1.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e) { jp.setBackground(Color.green); } }); jb2=new JButton("蓝色"); jb2.addActionListener(new ActionListener(){ @Override public void actionPerformed(ActionEvent e) { // TODO 自动生成的方法存根 jp.setBackground(Color.blue); } }); jp1.add(jb); jp1.add(jb1); jp1.add(jb2); jf.add(jp1,BorderLayout.NORTH); jf.add(jp,BorderLayout.CENTER); jf.setSize(400,300); jf.setVisible(true); } public static void main(String[] args){ new windows1(); } }
总结:通过本次的学习和上机实践,对java 中swing窗口组件有了新的认识。在第一个程序中:1:面对需要多个按钮组件或其他组件时,我们可以不必要定义多个,可以直接new一个按钮或其他组件;2:对于frame,初始的布局为边界布局(BorderLayout);而面板的初始布局为流布局(FlowsLayout);我们可以根据需要在Frame初始布局上添加其他布局;3:new多个有规律的相同组件时,我们可以使用for循环完成;第二个程序:我们有多个事件处理,显然如果我们用implement来实现只能实现一个,但是我们可以使用xxx.addActionListener(new ActionListener(){public void actionPerfomder(ActionEvent e){........})来进行不同按钮的不同的事件处理。