趣味のIT
自宅サーバーの構築
ApacheとTomcatの連携
Javaのインストール
JavaWebStartの実装
Webプログラミング
JavaScript
Java Applet
PHP
Java Web Start←
エクセルプログラミング
VBAでお絵かき
値を貼り付け
セル参照

Webプログラミング

Java Web Start編

Java Web Start(JWS) はデスクトップで実行されるアプリケーションの配布を自動的に行う技術。
クライアント側にはあらかじめJavaの実行環境(JRE)が必要になる。

通常であれば、作成したアプリケーションをひとつのファイルにまとめてサーバーに置く。
これをユーザーが自ら入手することで配布を行うが、実行までには次のような手順を行う必要がある。
(例としてあげているのはWindowsでの手順を説明している)

  1. サイトからアーカイブファイルをダウンロードし、一時保存する。
    今回の例ではjava_pcalc.zipを保存する。
  2. ダウンロードしたファイルを解凍し、あるいはインストーラーを実行し、プログラムを配置する。
    今回の例ではjava_pcalc.zipを解凍し、適当なフォルダに移動させる。
  3. 実行用のショートカットかスクリプトファイルを実行する。
    今回の例ではjavaフォルダにあるpcalc_bat.batをダブルクリックして実行させる。
    あらかじめJavaの実行環境をインストールしておくこと。
これに対し、JWS技術を用いれば、ユーザーがJREを最初にインストールしておくことによっていつでもアプリケーションの配布・更新ができる。
JREインストール後に、以下のリンクをクリックしてほしい。
自宅サーバー
(自宅サーバーの電源が入っていることが必要です。時々電源オフにしてますので了承ください。)


【ソースファイル】Pcalc.java
package pcalc;

import javax.swing.JFrame;

public class Pcalc extends JFrame {

	private javax.swing.JPanel jContentPane = null;
	private PcalcFiled pcalcFiled = null;

	public Pcalc() {
		super();
		initialize();
	}

	private void initialize() {
		this.setSize(395, 203);
		this.setContentPane(getJContentPane());
		this.setTitle("Pcalc");
		this.setVisible(true);
		this.addWindowListener(new java.awt.event.WindowAdapter() { 
			public void windowClosing(java.awt.event.WindowEvent e) {    
				System.exit(0);
			}
		});
	}

	private javax.swing.JPanel getJContentPane() {
		if(jContentPane == null) {
			jContentPane = new javax.swing.JPanel();
			jContentPane.setLayout(new java.awt.BorderLayout());
			jContentPane.add(getPcalcFiled(), java.awt.BorderLayout.CENTER);
		}
		return jContentPane;
	}

	private PcalcFiled getPcalcFiled() {
		if (pcalcFiled == null) {
			pcalcFiled = new PcalcFiled();
		}
		return pcalcFiled;
	}
	public static void main(String[] args){
		Pcalc pcalc = new Pcalc();
	}
	
 }
            

【ソースファイル】PcalcField.java
package pcalc;

import javax.swing.JPanel;

import javax.swing.JLabel;
import javax.swing.JButton;
import javax.swing.JTextField;
public class PcalcFiled extends JPanel {

	private JLabel jLabel = null;
	private JLabel jLabel1 = null;
	private JLabel jLabel2 = null;
	private JLabel jLabel3 = null;
	private JTextField jTextField = null;
	private JTextField jTextField1 = null;
	private JTextField jTextField2 = null;
	private JTextField jTextField3 = null;
	private JButton jButton = null;
	private float normalWeight;
	private float obestyRate;

	public PcalcFiled() {
		super();
		initialize();
	}

	private  void initialize() {
		jLabel = new JLabel();
		jLabel1 = new JLabel();
		jLabel2 = new JLabel();
		jLabel3 = new JLabel();
		this.setLayout(null);
		this.setSize(371, 161);
		this.setBorder(javax.swing.BorderFactory.createLineBorder(java.awt.SystemColor.desktop,2));
		jLabel.setBounds(20, 11, 110, 28);
		jLabel.setText("標準体重(kg)");
		jLabel1.setBounds(20, 44, 110, 28);
		jLabel1.setText("肥満度(%)");
		jLabel2.setBounds(20, 84, 110, 28);
		jLabel2.setText("身長(cm)");
		jLabel3.setBounds(20, 121, 110, 28);
		jLabel3.setText("体重(kg)");
		this.add(jLabel, null);
		this.add(jLabel1, null);
		this.add(jLabel2, null);
		this.add(jLabel3, null);
		this.add(getJTextField(), null);
		this.add(getJTextField1(), null);
		this.add(getJTextField2(), null);
		this.add(getJTextField3(), null);
		this.add(getJButton(), null);
		setNormalWeight("0");
	}

	public String getNormalWeight() {
		return String.valueOf(normalWeight);
	}

	public void setNormalWeight(String string) {
		float old = normalWeight;
		this.normalWeight = (Float.parseFloat(string) - 100) * (float)0.9;;
		firePropertyChange("normalWeight", old, normalWeight);
		getJTextField().setText(String.valueOf(normalWeight));
	}

	public String getObestyRate() {
		return String.valueOf(obestyRate);
	}

	public void setObestyRate(String string) {
		float old = obestyRate;
		this.obestyRate = (Float.parseFloat(string) - normalWeight) / normalWeight * 100;;
		firePropertyChange("obestyRate", old, obestyRate);
		getJTextField1().setText(String.valueOf(obestyRate));
	}

	private JButton getJButton() {
		if (jButton == null) {
			jButton = new JButton();
			jButton.setBounds(253, 117, 100, 34);
			jButton.setText("計算");
			jButton.addActionListener(new java.awt.event.ActionListener() { 
				public void actionPerformed(java.awt.event.ActionEvent e) {    
					setNormalWeight(getJTextField2().getText());
					setObestyRate(getJTextField3().getText());
				}
			});
		}
		return jButton;
	}

	private JTextField getJTextField() {
		if (jTextField == null) {
			jTextField = new JTextField();
			jTextField.setBounds(138, 11, 110, 28);
		}
		return jTextField;
	}

	private JTextField getJTextField1() {
		if (jTextField1 == null) {
			jTextField1 = new JTextField();
			jTextField1.setBounds(138, 44, 110, 28);
		}
		return jTextField1;
	}

	private JTextField getJTextField2() {
		if (jTextField2 == null) {
			jTextField2 = new JTextField();
			jTextField2.setBounds(138, 84, 110, 28);
		}
		return jTextField2;
	}

	private JTextField getJTextField3() {
		if (jTextField3 == null) {
			jTextField3 = new JTextField();
			jTextField3.setBounds(138, 121, 110, 28);
		}
		return jTextField3;
	}
}
            

Copyright (C) 2006 T.Fujiwara , All rights reserved.