Java窗口之選項卡、表格、分層窗口

選項卡


import java.awt.Color;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;

public class JTabbedPaneDome extends JFrame{
	
	public JTabbedPaneDome() {
		JTabbedPane jTabbedPane = new JTabbedPane();
		JPanel jpanel = new JPanel();
		JPanel jPanel2 = new JPanel();
		JPanel jPanel3 = new JPanel();
		jpanel.add(new JLabel("第一個選項卡"));
		jPanel2.add(new JLabel("第二個選項卡"));
		jPanel2.setBackground(Color.BLUE);
		jPanel3.add(new JLabel("第三選項卡"));
		jPanel3.setBackground(Color.cyan);
		jTabbedPane.add("     壹             ", jpanel);
		jTabbedPane.add("     貳             ", jPanel2);
		jTabbedPane.add("     三             ", jPanel3);
		this.add(jTabbedPane);
		this.setTitle("選項卡布局");
		this.setSize(800, 600);
		this.setLocationRelativeTo(null);
		this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		this.setVisible(true);
	}
	public static void main(String[] args) {
		new JTabbedPaneDome();
	}
}

表格 


import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JScrollPane;
import javax.swing.JTable;

public class WinTable extends JFrame implements ActionListener {
	JTable table;
	Object a[][];
	Object name[] = { "姓名", "英語成績", "數學成績", "總成績" };
	JButton button = new JButton("計算每人總成績");

	public WinTable() {
		a = new Object[8][4];
		for (int i = 0; i < 8; i++) {
			for (int j = 0; j < 4; j++) {
				if (j != 0) {
					a[i][j] = "0";
				} else {
					a[i][j] = "姓名";
				}
			}
		}
		table = new JTable(a, name);
		button.addActionListener(this);
		Container con = getContentPane();
		getContentPane().add(new JScrollPane(table), BorderLayout.CENTER);
		con.add(new JLabel("修改或錄入數據後,需回車確認"), BorderLayout.SOUTH);
		con.add(button, BorderLayout.SOUTH);
		setSize(400, 300);
		setVisible(true);
		validate();
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}

	@Override
	public void actionPerformed(ActionEvent e) {
		// TODO Auto-generated method stub
		for (int i = 0; i < 8; i++) {
			double sum = 0;
			boolean boo = true;
			for (int j = 1; i <= 2; j++) {
				try {
					sum = sum + Double.parseDouble(a[i][j].toString());
				} catch (Exception ee) {
					boo = false;
					table.repaint();
				}
				if (boo == true) {
					a[i][3] = "" + sum;
					table.repaint();
				}
			}
		}
	}

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

分層窗口 


import java.awt.Color;
import java.awt.GridLayout;

import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JLayeredPane;
import javax.swing.JPanel;
import javax.swing.SwingConstants;
import javax.swing.WindowConstants;


public class JLayeredPaneDemo extends JFrame{
	public JLayeredPaneDemo() {
		setTitle("測試窗口");
		//大小
		setSize(400, 300);
		setLocationRelativeTo(null);
		//關閉窗口退出程序
		setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);;
		JLayeredPane jLayeredPane  = new JLayeredPane();
		
		JPanel jPanel = createPanel(Color.red, "L=100,P=1", 30, 30, 100, 100);
		jLayeredPane.add(jPanel,new Integer(200));
		
		JPanel jPanel2 = createPanel(Color.green, "L=200,p=0", 70, 70, 100, 100);
		jLayeredPane.add(jPanel2,new Integer(200),0);
		
		JPanel jPanel3 = createPanel(Color.cyan, "L=200,p=1", 110, 110, 100, 100);
		jLayeredPane.add(jPanel3,new Integer(200), 1);
		
		JPanel jPanel4 = createPanel(Color.yellow, "L=300", 150, 150, 100, 100);
		jLayeredPane.add(jPanel4,new Integer(300));
		
		setContentPane(jLayeredPane);
		setVisible(true);
	}
	private static JPanel createPanel(Color bg,String text, int x,int y, int width,int height) {
		//創建一個JPanel,使用1行1列的網格佈局
		JPanel jPanel  = new JPanel(new GridLayout(1,1));
		
		//設置容器的位置和寬高
		jPanel.setBounds(x, y, width, height);
		
		
		//設置Panel背景
		jPanel.setOpaque(true);
		jPanel.setBackground(bg);
		
		//創建標籤並設置相應屬性
		JLabel jLabel = new JLabel(text);
		jLabel.setHorizontalAlignment(SwingConstants.CENTER);
		jLabel.setVerticalAlignment(SwingConstants.TOP);
		
		//添加簽到標題
		jPanel.add(jLabel);
		
		return jPanel;
	}
	public static void main(String[] args) {
		new JLayeredPaneDemo();
	}
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章