applet常用的布局

原创 2013年12月04日 10:07:47

BorderLayout

 

package hb.applet;

import java.applet.Applet;
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JOptionPane;

public class BorderLayoutTest extends Applet implements ActionListener{

	Button buttonWest,buttonSouth,buttonEast,buttonNorth,buttonCenter;
	
	@Override
	public void init() {
		
		buttonNorth = new Button("North");
		buttonSouth = new Button("North");
		buttonEast = new Button("North");
		buttonWest = new Button("North");
		buttonCenter = new Button("North");
		
		//指明当前的类采用“Border”布局
		this.setLayout(new BorderLayout());
		
		this.add(buttonNorth, BorderLayout.NORTH);
		this.add(buttonSouth, BorderLayout.SOUTH);
		this.add(buttonEast, BorderLayout.EAST);
		this.add(buttonWest, BorderLayout.WEST);
		this.add(buttonCenter, BorderLayout.CENTER);
		
		//因为当前类继承了ActionListener接口,所以listener的具体实现是可以用this的
		buttonNorth.addActionListener(this);
		buttonSouth.addActionListener(this);
		buttonEast.addActionListener(this);
		buttonWest.addActionListener(this);
		buttonCenter.addActionListener(this);
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		Object obj = e.getSource();
		
		if(obj == buttonNorth){
			int result = JOptionPane.showConfirmDialog(this, 
									"I am north", 
									"title -- north", 
									JOptionPane.OK_CANCEL_OPTION);
			System.out.println(result);
		}
		
		if(obj == buttonSouth){
			int result = JOptionPane.showConfirmDialog(this, 
					"I am south", 
					"title -- south", 
					JOptionPane.OK_CANCEL_OPTION);
			System.out.println(result);
		}
		
		if(obj == buttonEast){
			int result = JOptionPane.showConfirmDialog(this, 
					"I am east", 
					"title -- east", 
					JOptionPane.OK_CANCEL_OPTION);
			System.out.println(result);
		}
		
		if(obj == buttonWest){
			int result = JOptionPane.showConfirmDialog(this, 
					"I am west", 
					"title -- west", 
					JOptionPane.OK_CANCEL_OPTION);
			System.out.println(result);
		}
		
		if(obj == buttonCenter){
			Object[] options = {"Yes, please",
            "No way!"};
			int n = JOptionPane.showOptionDialog(this,
				    "Would you like green eggs and ham?",//content
				    "A Silly Question",//title
				    JOptionPane.YES_NO_OPTION,//type
				    JOptionPane.QUESTION_MESSAGE,
				    null,     //do not use a custom Icon
				    options,  //the titles of buttons
				    options[0]); //default button title

			if(n==0){
				JOptionPane.showMessageDialog(this, n);		
			}else{
				JOptionPane.showMessageDialog(this, n);
			}
		}
		
	}
	
}

 

FlowLayout

package hb.applet;

import java.applet.Applet;
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Label;
import java.awt.TextField;

public class FlowLayoutTest extends Applet {

	Button b1,b2,b3;
	TextField tf;
	Label lab;
	
	@Override
	public void init() {
		
		b1 = new Button("b1");
		b2 = new Button("b2");
		b3 = new Button("b3");
		
		tf = new TextField("test");
		
		lab = new Label("Test FlowLayout");
		
		this.setLayout(new FlowLayout(FlowLayout.LEFT));
		
		this.add(b1);
		this.add(b2);
		this.add(b3);
		this.add(tf);
		this.add(lab);
		
	}
}

 

GridLayout

package hb.applet;

import java.applet.Applet;
import java.awt.Button;
import java.awt.GridLayout;

public class GridLayoutTest extends Applet {

	Button[] bs;
	
	@Override
	public void init() {
		bs = new Button[7];
		//GridLayout(int rows,int cols,int hgap,int vgap)
        //指定网格的行数、列数、行间距、列间距
		this.setLayout(new GridLayout(3,3,10,10));
		
		for(int i=0;i<bs.length;i++){
			bs[i]=new Button(Integer.toString(i));
			add(bs[i]);
		}
		
	}
}

 

CardLayout

package hb.applet;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class CardLayoutTest2 extends JFrame implements ActionListener {

	private static final long serialVersionUID = 1L;
	private Panel panel_1, panel_2, panel_3, panel_4, panel_5;
	private Button btn_n, btn_p;
	private CardLayout c = new CardLayout();

	public CardLayoutTest2() {
		super("CardLayout");
		this.setBounds(150, 150, 300, 300);
		this.setLayout(new BorderLayout());
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);//点击X按钮就能够正常退出

		panel_1 = new Panel();
		panel_1.setLayout(c);
		this.add(panel_1, "Center"); // panel_1在主框架中

		panel_2 = new Panel();
		panel_2.setLayout(new FlowLayout());
		btn_p = new Button("Previous");
		btn_p.addActionListener(this);

		btn_n = new Button("Next");
		btn_n.addActionListener(this);
		panel_2.add(btn_p);
		panel_2.add(btn_n);
		this.add(panel_2, "North"); // panel_2在主框架中

		panel_3 = new Panel();
		panel_3.setBackground(new Color(255, 0, 0));
		panel_1.add("red", panel_3);

		panel_4 = new Panel();
		panel_4.setBackground(new Color(0, 255, 0));
		panel_1.add("green", panel_4);

		panel_5 = new Panel();
		panel_5.setBackground(new Color(0, 0, 255));
		panel_1.add("blue", panel_5);

		this.setVisible(true);

	}

	public void actionPerformed(ActionEvent e) {
		if (e.getSource() == btn_p) {
			c.previous(panel_1);//翻转到指定容器的前一张卡片。
		}
		if (e.getSource() == btn_n)
			c.next(panel_1);//翻转到指定容器的下一张卡片
	}

	public static void main(String[] args) {
		new CardLayoutTest2();
	}

}

 

package hb.applet;

import java.awt.*;
import java.applet.Applet;

class ButtonPanel extends Panel {
	ButtonPanel(String id) {
		setLayout(new BorderLayout());
		add("Center", new Button(id));
	}
}

public class CardLayoutTest extends Applet {
	
	Button first = new Button("First"), 
		   second = new Button("Second"),
		   third = new Button("Third");
	
	Panel cards = new Panel();
	
	CardLayout cardLayout = new CardLayout();
	//先采用border布局,按钮在north,Card在center
	public void init() {
		setLayout(new BorderLayout());
		
		Panel p = new Panel();
		p.setLayout(new FlowLayout());
		p.add(first);
		p.add(second);
		p.add(third);
		add("North", p);
		
		cards.setLayout(cardLayout);
		cards.add("First card", new ButtonPanel("The first one"));
		cards.add("Second card", new ButtonPanel("The second one"));
		cards.add("Third card", new ButtonPanel("The third one"));
		add("Center", cards);
	}

	@Override
	public boolean action(Event evt, Object arg) {
		if (evt.target.equals(first)) {
			cardLayout.first(cards);
		} else if (evt.target.equals(second)) {
			//先跳到第一张,然后再跳到第二章,显示的就是中间的second的card
			cardLayout.first(cards);//翻转到容器的第一张卡片
			cardLayout.next(cards);// 翻转到指定容器的下一张卡片。
		} else if (evt.target.equals(third)) {
			cardLayout.last(cards);//翻转到容器的最后一张卡片。
		} else
			return super.action(evt, arg);
		return true;
	}
} 

 

相关文章推荐

java,applet 容器、组件和布局管理器

10.2.1 容器   AWT容器分为两类:外部容器和内部容器。其中,外部容器一般会独立存在,例如Frame类;而内部容器则会嵌套在外部容器内部使用,例如Panel类。容器的层次结构如图10-2所...

java常用类解析九:Applet(JApplet)详解及示例

1、Applet类及各个方法说明      Applet类提供一个基本框架,使得applet可以通过Web浏览器来运行,applet没有main方法,它依靠浏览器调用Applet类中的方法。Appl...

常用布局颜色

  • 2016年03月22日 14:20
  • 13KB
  • 下载

android控件布局常用属性

  • 2013年10月15日 14:30
  • 25KB
  • 下载

【Java】-基础-Swing-常用布局管理器

在Swing中,每个组件在容器中都有一个具体的位置和大小,而在容器中摆放各种组件时,很难判断其具体位置和大小。布局管理器提供了Swing组件安排,展示在容器中的方法及基本的布局功能。使用布局管理器能有...

CSS常用网站布局实例

  • 2011年07月04日 17:36
  • 4KB
  • 下载

常用布局源代码

  • 2016年11月15日 21:18
  • 975KB
  • 下载

微信小程序ui布局常用技巧

微信小程序ui设计规范汇总:   微信小程序是一种全新的应用形态,微信小程序平台不需要下载安装即可使用应用的平台,微信小程序实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用。 ...

CSS常用布局

  • 2008年03月24日 20:27
  • 45KB
  • 下载

css模板(常用布局和多级菜单)

  • 2008年05月14日 11:11
  • 136KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:applet常用的布局
举报原因:
原因补充:

(最多只允许输入30个字)