package com.ogane.xi.test; import java.awt.*; import java.awt.event.*; import com.ogane.xi.*; public class TabTest extends Frame implements ActionListener { private final static String DUKE_TAB = "Duke君"; private final static String TEXT_TAB = "Sevlet?"; private final static String POSITION_TAB = "位置"; private final static String REMOVE_TAB = "削除"; private final static String RIGHT = "右"; private final static String LEFT = "左"; private final static String TOP = "上"; private final static String BOTTOM = "下"; private final static String REMOVE_DUKE = REMOVE_TAB+" - "+DUKE_TAB; private final static String REMOVE_TEXT = REMOVE_TAB+" - "+TEXT_TAB; Tab tabs = new Tab(); public TabTest() { enableEvents(AWTEvent.WINDOW_EVENT_MASK); setTitle("TabTest"); setLayout(new BorderLayout()); setBackground(new Color(220, 211, 200)); tabs.setBackground(new Color(200, 200, 255)); add(BorderLayout.CENTER, tabs); // ----- 1枚目 ----- Panel p1 = new Panel(); p1.setLayout(new GridLayout(2, 2)); addButton(p1, TOP); addButton(p1, BOTTOM); addButton(p1, LEFT); addButton(p1, RIGHT); tabs.addItem(POSITION_TAB, p1); // ----- 2枚目 ----- tabs.addItem(DUKE_TAB, new ImageCanvas("com/ogane/xi/test/duke.gif")); // ----- 3枚目 ----- Panel p3 = new Panel(); p3.setLayout(new GridLayout(1, 2)); addButton(p3, REMOVE_DUKE); addButton(p3, REMOVE_TEXT); tabs.addItem(REMOVE_TAB, p3); // ----- 4枚目 ----- TextArea txt = new TextArea(); txt.setText(whatsSevlet); tabs.addItem(TEXT_TAB, txt); tabs.selectTab(POSITION_TAB); setSize(240, 260); setVisible(true); } void addButton(Panel panel, String label) { Button button=new Button(label); button.addActionListener(this); panel.add(button); } public void actionPerformed(ActionEvent ev) { String label = ((Button)ev.getSource()).getLabel(); if(label.equals(TOP)) tabs.setPlacement(Tab.NORTH); else if(label.equals(BOTTOM)) tabs.setPlacement(Tab.SOUTH); else if(label.equals(RIGHT)) tabs.setPlacement(Tab.EAST); else if(label.equals(LEFT)) tabs.setPlacement(Tab.WEST); else if(label.equals(REMOVE_TEXT)) tabs.removeItem(TEXT_TAB); else if(label.equals(REMOVE_DUKE)) tabs.removeItem(DUKE_TAB); repaint(); } private static final String whatsSevlet = " Java Servletテクノロジは、Webサーバの機能を拡張し、\n"+ "既存のビジネスシステムにアクセスするための簡単で一貫した\n"+ "メカニズムをWeb開発者に提供します。サーブレットは、サ\n"+ "ーバ側(背後)で実行されるアプレットとみなすことができま\n"+ "す。これまでも、Javaサーブレットを利用した多数のWebア\n"+ "プリケーションが使用されてきました。\n\n"+ " サーブレットは、Webサーバ拡張用のJavaプラットフォーム\n"+ "テクノロジです。サーブレットは、Webベースのアプリケーシ\n"+ "ョンを構築するための、コンポーネントベースで、プラットフ\n"+ "ォームに依存しない手法です。サーブレットには、CGIプログ\n"+ "ラムの持つパフォーマンス上の制限がありません。また、独自\n"+ "のサーバ拡張機構(Netscape Server APIやApacheモジュ\n"+ "ールなど)と異なり、サーブレットは、サーバやプラットフォ\n"+ "ームに依存しません。このため、使用に最も適したサーバ、プ\n"+ "ラットフォーム、およびツールを自由に選択できます。\n\n"+ " サーブレットは、Java APIファミリ全体にアクセスできます\n"+ "。たとえば、JDBC API を利用して、企業データベースにアク\n"+ "セスすることもできます。さらに、サーブレットは、HTTP固\n"+ "有の呼び出しライブラリへのアクセスや、移植性、パフォーマ\n"+ "ンス、再利用性、クラッシュ保護など、十分な機能を持つJava\n"+ "言語の利点をすべて活用することができます。"; protected void processWindowEvent(WindowEvent e) { super.processWindowEvent(e); if (e.getID() == WindowEvent.WINDOW_CLOSING) { System.exit(0); } } public static void main(String[] args) { new TabTest(); } }