php网站开发目录,家庭装修图片,网站开发技术的发展,小小视频免费观看高清1.流式布局FlowLayout
public void pack()调整此窗口的大小#xff0c;以适合其子组件的首选大小和布局。如果该窗口或其所有者仍不可显示#xff0c;则两者在计算首选大小之前变得可显示。在计算首选大小之后#xff0c;将会验证该Window。窗口自动适应大小#xff0c;使…1.流式布局FlowLayout
public void pack()调整此窗口的大小以适合其子组件的首选大小和布局。如果该窗口或其所有者仍不可显示则两者在计算首选大小之前变得可显示。在计算首选大小之后将会验证该Window。窗口自动适应大小使窗口能正好显示里面所有的控件。
import java.awt.*;public class FlowLayoutDemo {public static void main(String[] args) {Frame frame new Frame(这里测试FlowLayout);//1.通过setLayout方法设置容器的布局管理器// frame.setLayout(new FlowLayout(FlowLayout.LEFT,20,20));//frame.setLayout(new FlowLayout(FlowLayout.CENTER,20,20));frame.setLayout(new FlowLayout(FlowLayout.RIGHT,40,20));//2.添加多个按钮到frame中for (int i 1; i 100; i) {frame.add(new Button(按钮i));}//3.设置最佳大小pack方法 大小适中frame.pack();frame.setVisible(true);}}
右对齐 居中对齐
左对齐
2.边界布局BorderLayout
当改变使用 BorderLayout 的容器大小时 NORTH 、 SOUTH 和 CENTER区域水平调整而 EAST 、 WEST 和 CENTER 区域垂直调整。使用BorderLayout 有如下两个注意点:
1. 当向使用 BorderLayout 布局管理器的容器中添加组件时 需要指定要添加到哪个区域中 。 如果没有指定添加到哪个区域中则默认添加到中间区域中,其他区域空出的话也会被中间区域占用 2. 如果向同一个区域中添加多个组件时 后放入的组件会覆盖先放入的组件
3.网格布局GridLayout import javax.swing.JFrame;
import java.awt.*;
import javax.swing.*;public class GridLayoutDemo extends JFrame{public static void main(String []args){GridLayoutDemo win new GridLayoutDemo();}public GridLayoutDemo(){//1.创建对象并且标题设置为计算器this.setTitle(这是一个计算器的界面);this.setBounds(100,200,500,500);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);init();}public void init(){//2.创建一个Panel对象并且往Panel中放置一个TextField组件JPanel p1 new JPanel();p1.add(new JTextField(30));//3.把上述的Panel放入到窗口的北侧区域this.add(p1,BorderLayout.NORTH);//4.创建一个Panel对象并且设置其布局管理器为GridLayoutJPanel p2 new JPanel();p2.setLayout(new GridLayout(3,5,4,4));//5.往上述Panel中放置15个按钮内容依次是0,1,2,3,4,5,67,8,9-*/,.for (int i 0; i 10; i) {p2.add(new Button(i));}p2.add(new Button());p2.add(new Button(-));p2.add(new Button(*));p2.add(new Button(/));p2.add(new Button(.));//6.把上述Panel添加到Frame的中间区域中国this.add(p2);//7.设置Frame为最佳大小this.pack();//8.设置Frame可见this.setVisible(true);}} 4.卡片布局CardLayout import javax.swing.*;
import java.awt.*;
import javax.swing.event.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class CardLayoutDemo extends JFrame{public static void main(String []args){CardLayoutDemo win new CardLayoutDemo();}public CardLayoutDemo(){init();this.setTitle(卡片布局);this.setBounds(100,200,500,500);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}public void init(){//2.创建一个String数组存储不同卡片的名字String []str{第一张,第二张,第三张,第四张,第五张};//3.创建一个Panel容器p1并设置其布局管理器为CardLayout,用来存放多张卡片JPanel panel1 new JPanel();CardLayout cardLayout new CardLayout();panel1.setLayout(cardLayout);//4.往p1中存储5个Button按钮名字从String数组中取for(int i0;istr.length;i){panel1.add(str[i],new JButton(str[i]));}//5.创建一个Panel容器p2,用来存储5个按钮完成卡片的切换JPanel panel2 new JPanel();//6.创建5个按钮并给按钮设置监听器ActionListener listener new ActionListener()//8.把p1添加到frame的中间区域{Overridepublic void actionPerformed(ActionEvent arg0) {// TODO 自动生成的方法存根String Command arg0.getActionCommand();switch(Command){case 上一张:cardLayout.previous(panel1);break;case 下一张:cardLayout.next(panel1);break;case 第一张:cardLayout.first(panel1);break;case 最后一张:cardLayout.last(panel1);break;case 第三张:cardLayout.show(panel1,第三张);break;}}};Button b1 new Button(上一张);Button b2 new Button(下一张);Button b3 new Button(第一张);Button b4 new Button(最后一张);Button b5 new Button(第三张);b1.addActionListener(listener);b2.addActionListener(listener);b3.addActionListener(listener);b4.addActionListener(listener);b5.addActionListener(listener);//7.把5个按钮添加到p2中panel2.add(b1);panel2.add(b2);panel2.add(b3);panel2.add(b4);panel2.add(b5);//8.把p1添加到frame的中间区域this.add(panel1);//9.把p2添加到frame的底部区域this.add(panel2,BorderLayout.SOUTH);
}
}
5.BoxLayout盒式布局 import javax.swing.JFrame;
import javax.swing.*;
import java.awt.*;public class BoxLayoutDemo extends JFrame{public static void main(String []args){BoxLayoutDemo boxLayout new BoxLayoutDemo();}public BoxLayoutDemo(){init();this.setTitle(BoxLayout盒式容器);this.setBounds(200,200,500,300);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}public void init(){JPanel panel new JPanel();panel.setLayout(new BoxLayout(panel,BoxLayout.Y_AXIS));//panel.setLayout(new BoxLayout(panel,BoxLayout.X_AXIS));JButton button1 new JButton(按钮1);JButton button2 new JButton(按钮2);panel.add(button1);panel.add(button2);this.pack();this.add(panel);}
} import javax.swing.Box;
import javax.swing.*;
import java.awt.*;public class box extends JFrame{public static void main(String []args){box boxlayout new box();}public box(){init();//1.创建Frame对象this.setTitle(这里测试BoxLayout);this.setBounds(200,200,500,300);this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);this.setVisible(true);}public void init(){//2.创建一个横向的Box,并添加两个按钮Box hBox Box.createHorizontalBox();hBox.add(new JButton(水平按钮一));hBox.add(Box.createHorizontalGlue());//两个方向都可以拉伸的间隔hBox.add(new JButton(水平按钮二));hBox.add(Box.createHorizontalStrut(10));//水平间隔固定垂直间方向可以拉伸hBox.add(new JButton(水平按钮3));//3.创建一个纵向的Box并添加两个按钮Box vBox Box.createVerticalBox();vBox.add(new JButton(垂直按钮一));vBox.add(Box.createVerticalGlue());//两个方向都可以拉伸的间隔vBox.add(new JButton(垂直按钮二));vBox.add(Box.createVerticalStrut(10));//垂直间隔固定水平方向可以拉伸vBox.add(new JButton(垂直按钮三));//4.把box容器添加到frame容器中this.add(hBox, BorderLayout.NORTH);this.add(vBox);//5.设置frame最佳大小并可见}}