同じ質問いっぱいあるとおもったのですが・・・
Javaアプレットについて教えてください。
とりあえず、GUIを使ってButton・TextFieldはできました。
入力文字をそれぞれ受け取り、画面に表示することもできました。

1.
入力文字をファイルに書き込むことをしたいのですが、
どのようにすればいいのでしょう?
2.
ただ単に書き込む方法でOKですが、
追加書き込みの方法などもあれば教えてください。
3.
将来的にこのファイルをメール送信したいと考えていますが、
できますでしょうか?
4.
そろそろ本を買うべきでしょうか?(笑)
現在サイトを巡りまくって勉強しています・・・・

このQ&Aに関連する最新のQ&A

A 回答 (3件)

もし、どーしてもクライアント側にファイルを作成する必要がありまたら


「署名付きアプレット」を使うという手もあります。

セキュリティの制限をゆるくするためにユーザに許可をもらってから
ファイルを作成することになります。

署名付きアプレット(Javaのセキュリティ)については、参考URLを見てください。

参考までに。

参考URL:http://java.sun.com/j2se/1.3/ja/docs/ja/guide/se …
    • good
    • 0
この回答へのお礼

参考URLを見ました。
かなり高度な内容で、、実際にやってみるのが
一番のようですね。ありがとうございます。

Java.policy ファイルをどうのように配布すればいいのか
(ただくばるだけなのでしょうか?)
このあたりが疑問なのですが、解決策の一つとして
利用させていただきます。

皆様ありがとうございました。

お礼日時:2001/12/25 18:41

アプレットからはローカルファイルへの入出力はできません。


これはWebサーバー等から悪意のあるアプレットがダウンロードされた場合の危険性を考慮してのことです。
MS社のJavaVMにはアプレットからローカルファイルへのアクセスが出来てしまうというセキュリティホールがありました。
最新のJavaVMに必ず更新しておいてください。
Windows環境でもNetscapeを使っている場合には問題ありません。

Javaアプリケーションであればファイル入出力は可能です。
テキストの入出力であれば、BufferWriterやBufferReaderクラスあたりを参照してください。

メールで送信するなら、SMTPプロトコルを自作で実装するか、JavaMail APIを使うことになります。
詳しくはRFCやAPIのドキュメントをご覧ください。

本は必要であれば買ってください。
紙モノは一覧性に優れていて、電子文書は検索性に優れるというそれぞれの利点があります。

あとはご自身の必要性と財布の中身に相談してください。(^^;

この回答への補足

Appletではローカルファイルへの書込はできないのですね
ありがとうございます。

Javaアプリケーションを利用するということは
WEBサーバを構築する必要があるのですね。

今回、ネットワークにはアクセスできないが、
メールを利用可能なユーザへの対応として
クライアント側にWEBサーバを構築する必要がないものとして
Appletは使えるか?というところを考慮していました。
できないということであれば別の手段を考えます。
やっぱEXCELファイルとかになるのかなぁ~♪

ありがとうございました。

補足日時:2001/12/19 12:53
    • good
    • 0

別に本は買おうが買うまいがどちらでもいいと思いますが、あなたが書いた質問の内容は、たいていどこかを検索するか、JDKのAPIを参照すれば解決するはずです。

    • good
    • 0

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

QDVD-RAMデイスクの「書き込み禁止」を解除する方法?

 現在DVD-RAMデイスクにデーターを保存して居りますが、 最近、「書き込み禁止」のエラーが出ます。
 この「書き込み禁止」を解除して書き込みが出来るように
 する方法を教えて下さい。
 使用OS:VISTA HP SP-1
 使用デイスク:DVD-RAM 4,7GB「TRANS DISC」

Aベストアンサー

最初にDVDをセットする前にマイコンピュータのCDドライブを右クリックしてプロパティーの「書き込み」の「このドライブでCD書き込みを有効にする」のチェックを外してください。
これをやらないとCDの書き込みウィザードが立ち上がってしまいDVDに書き込めません。

DVD-RAMディスクにはPCデータ用とビデオ録画用の2種類があります。

DVD-RAMのPCデータ用(for data)は買ってすぐそのままの状態ではデータ書き込みは出来ません。
ユニバーサルディスク1.5でのフォーマットが必要です。
フォーマットはされましたか?

DVDレコーダー用のフォーマットでは書き込めないらしいから、お持ちのRAMディスクが
for videoとパッケージに記載されていたらユニバーサルディスク1.5で再度フォーマットすれば書き込めるはずです。

マルチドライブ搭載ならばDVD-RAMドライバーが「すべてのプログラム」に入っています。
そこからフォーマットできます。

ドライブとディスクの相性がありメーカーが動作確認を取ったディスク以外は使えないことがあります。

ご自分のPCのメーカーに問い合わせると教えてくれるし、東芝のようにカタログに推奨ディスクを記載しているところもあります。

最初にDVDをセットする前にマイコンピュータのCDドライブを右クリックしてプロパティーの「書き込み」の「このドライブでCD書き込みを有効にする」のチェックを外してください。
これをやらないとCDの書き込みウィザードが立ち上がってしまいDVDに書き込めません。

DVD-RAMディスクにはPCデータ用とビデオ録画用の2種類があります。

DVD-RAMのPCデータ用(for data)は買ってすぐそのままの状態ではデータ書き込みは出来ません。
ユニバーサルディスク1.5でのフォーマットが必要です。
フォーマットは...続きを読む

QAppletのTextFieldとButton

TextFieldに値を入力して、Buttonをクリックするとその値が変数nに代入されるというソースを、どなたか教えていただけませんでしょうか?

public void ABC extends Applet{
int n = 0;
public void init(){
TextField tf = new TextField("0",5);
Button btn = new Button("click!");
this.add(tf);
this.add(btn);

この後、actionなんちゃらメソッドやらクラスやらでどうにか値をnに入れた結果を実行させたいのですが、よくわかりません。よろしくお願いします。

Aベストアンサー

 Javaのイベントモデルはその原理さえわかってしまえば、意外と単純です。
 たとえば、ボタンのActionEventを処理する場合は、まず、

1.ボタンにActionListenerインターフェースを装備したオブジェクトを登録する。
2.ボタンコンポーネントにActionEvent発生。
3.ボタンはActionListenerとして登録されているオブジェクトのactionPerformedメソッドを呼び出す。

 これだけです。

 登録するのはActionListenerインターフェースを装備したオブジェクトなら、何でいいです。
 ActionListenerインターフェースを装備しているということは、actionPerformedメソッドを持っているということが保障されているので、ボタンは安心して、ただ、actionPerformedメソッドを呼べばよいというわけです。

 やり方としては、大きくわけで、内部クラス使う場合とFrameやAppletを継承したクラスにActionListenerを装備させるという二つの方法があるように思います。

 サンプルを作ってみましたが、コードをちょっと変更してボタンも二つにしてみました。
(コンパイルするときは全角スペースを半角スペースに変換してからにしてください。)

 内部クラスを使う場合は、こんな感じ。↓

import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class ABC extends Applet{
  int n = 0;
  int m = 0;
  
  //↓コンポーネントはメンバ変数として保持しておくほうが後からアクセスしやすい。
  TextField tf;
  Button btnN;
  Button btnM;
  Label label;
  
  public void init(){
    tf = new TextField("0",5);
    
    btnN = new Button("nに代入");
    btnN.addActionListener(new BtnN_Clicked());
    
    btnM = new Button("mに代入");
    btnM.addActionListener(new BtnM_Clicked());
    
    label = new Label("整数値を入れてください。");
    
    this.add(tf);
    this.add(btnN);
    this.add(btnM);
    this.add(label);
  }
  
  //イベントハンドラ用の内部クラス
  private class BtnN_Clicked implements ActionListener {
    public void actionPerformed(ActionEvent e) {
      try {
        String numString = tf.getText();
        n = Integer.parseInt(numString);
        label.setText("n = " + Integer.toString(n));
      }
      catch (NumberFormatException ex) {
        tf.setText("0");
        label.setText("整数値ではありません。");
      }
    }
  }
  
  private class BtnM_Clicked implements ActionListener {
    public void actionPerformed(ActionEvent e) {
      try {
        String numString = tf.getText();
        m = Integer.parseInt(numString);
        label.setText("m = " + Integer.toString(m));
      }
      catch (NumberFormatException ex) {
        tf.setText("0");
        label.setText("整数値ではありません。");
      }
    }
  }
}

 FramやAppletにActionListenerを装備させる方法はこんな感じでしょうか。↓

import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class ABC extends Applet implements ActionListener {
  int n = 0;
  int m = 0;
  
  //↓コンポーネントはメンバ変数として保持しておくほうが後からアクセスしやすい。
  TextField tf;
  Button btnN;
  Button btnM;
  Label label;
  
  public void init(){
    tf = new TextField("0",5);
    
    btnN = new Button("nに代入");
    btnN.addActionListener(this);
    
    btnM = new Button("mに代入");
    btnM.addActionListener(this);
    
    label = new Label("整数値を入れてください。");
    
    this.add(tf);
    this.add(btnN);
    this.add(btnM);
    this.add(label);
  }
  
  public void actionPerformed(ActionEvent e) {
    //二つのボタンが一つのメソッドを共有するので、場合わけが必要
    Object source = e.getSource();
    if (source == btnN) {
      try {
        String numString = tf.getText();
        n = Integer.parseInt(numString);
        label.setText("n = " + Integer.toString(n));
      }
      catch (NumberFormatException ex) {
        tf.setText("0");

        label.setText("整数値ではありません。");
      }
    }
    else if (source == btnM) {
      try {
        String numString = tf.getText();
        m = Integer.parseInt(numString);
        label.setText("m = " + Integer.toString(m));
      }
      catch (NumberFormatException ex) {
        tf.setText("0");
        label.setText("整数値ではありません。");
      }
    }
  }
}

 Javaのイベントモデルはその原理さえわかってしまえば、意外と単純です。
 たとえば、ボタンのActionEventを処理する場合は、まず、

1.ボタンにActionListenerインターフェースを装備したオブジェクトを登録する。
2.ボタンコンポーネントにActionEvent発生。
3.ボタンはActionListenerとして登録されているオブジェクトのactionPerformedメソッドを呼び出す。

 これだけです。

 登録するのはActionListenerインターフェースを装備したオブジェクトなら、何でいいです。
 ActionListenerインタ...続きを読む

Q2ch最新書き込みへのたどり着き方法

2chの最新書き込みを見たいのですが方法がわかりません

さっき見たけれど、先月の日付で終わっていました

それが最新スレッドの書き込みでしょうか?

Aベストアンサー

過疎スレなんかの場合だと、1ヶ月以上書き込みがないスレもありますよ。
とりあえず。「全部」か「最新50」を押してみて下さい。

QアプレットとGUIアプリケーションで画像の表示方法は違う?

画像ファイルをGUIアプリケーションで表示させようとしているのですが、今までアプレットでは表示させていたことはあったのですが、それより手順がちょっと違うようで(?)混乱しています。

アプレットでは、getImageとdrawImageでなんとなく出来てしまったのですが、GUIアプリケーションではいったんコンポーネント(今読んでいる資料ではJLabel)に置いてそのコンポーネントを、コンテナに置く、という手順を踏んでいるのですが、この手順はGUIアプリケーションだからこうする必要があって、こういう手順にしているのでしょうか?

よろしくお願いします。

Aベストアンサー

>この手順はGUIアプリケーションだからこうする必要があって、こういう手順にしているのでしょうか?

その手順は、アプリケーションでイメージを利用するのに、わかりやすい方法としてわざとそういうやり方をしているのでしょう。別に、アプリケーションではそうしないといけないというわけではありません。実際は、もっと別な方法をとります。

URL url = getClass().getResource(ファイル名);
Image image = Toolkit.getDefaultToolkit().getImage(url);

こんな感じで、リソースとしてURLを取得し、それをもとにToolkitからImageを得るようにするのが基本だろうと思います。

アプレットのgetImageは、Appletクラスに用意されているものです。従って、アプレット以外には使えません。アプリケーションでは他の方法を覚える必要があるのです。

QCD-Rの書き込み方法

音楽CDをウィンドウズメディアプレーヤーで取り込み、CD-Rに書き込み後、
CDラジカセで再生できませんでした。

ウィンドウズメディアプレーヤーではCD-DAできないらしいので、
他の方法でCD-DAで書き込みできる方法を教えて下さい。

Aベストアンサー

>ウィンドウズメディアプレーヤーではCD-DAできないらしいので、

7のWMPでCD-DAは可能です。但し、デフォルトではデータの書込になっていますが、それをオーディオCDの書込にしないといけません。
やり方は簡単ですが画面で説明するのが苦しいので、ヘルプファイルを御覧ください。それで調べましたから。
WMPでCDまたはDVDに書き込む→オーディオCDへの書込です。

また、フリーソフトでもCD-DA書込可能のものが多いです。例えば、CDBurnerXPがCD-DAでの書込可能。StarBurnですと、CDからパソコンに直接取り込み可能でCD-DAでの書込可能。

Qアプレットを実行すると、×が表示され、Javaアプレットの読み込みに失敗しました。のメッセージが表示されます。

Java JDK5をインストールしました。

C:\Program Files\Javaに
jdk1.5.0_06
jre1.5.0_06
がインストールされています。

コンパイルは、PATHにC:\Program Files\Java\jdk1.5.0_06\binを追加すれば、できるようになりました。


Javaアプレットの読み込みに失敗しました。のメッセージが表示されます。


// 図形の表示

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

public class Test_0002 extends Applet{
public void paint(Graphics g){
g.fillOval(0, 0, 200, 100);
}
}

Aベストアンサー

HTMLのソースとclassファイル(またはjarファイル)の配置はどうなっていますか?
読み込みに失敗したのなら、classファイルが読み込めていない可能性が高いです。

QUSBめもりーの書き込み禁止の解除の方法を教えてください

よろしくお願いします。

しばらく使っていなかったUSBメモリーにデスクトップのファイルをコピーしようとしたら、書き込み禁止になっています。という文字が出て、コピーができませんでした。

USBメモリーの空き容量はあります。
USBメモリーの書き込み禁止の解除の方法を教えてください。






USBメモリーの書き込み禁止の解除の方法を教えてください

Aベストアンサー

> ELECOm FLASH MEMORY MF-AU202GRS です。
確かに見当たりませんね
なんかソフトで権限つけたりする方式を取っているようです
http://www2.elecom.co.jp/data-media/usb-flash/mf-au2/rs/

Q&Aにこんなのもありました
http://faq.elecom.co.jp/faq2/userqa.do?user=elecom&faq=FlashMemory&id=2599&parent=242

フォーマットするのが早いかもしれません

QJavaアプレット読み込み時の「Now Loading..」表示方法は?

2回目のホームページ作りをしているのですが、JAVAアプレットを使ったところ、読み込みまでに時間がかかってしまうので読み込みまでの間「Now Loading」の文字を表示させようと思い、講座ページを探していたところアニメーションでJavaのマークを線のような物が動きながらLoading表示を見つけました。

探し方が悪いのか、Javaの読み込みの際のNowLoadingの表示方法を見つけることができなかったのでどなたかソースや方法をご存知の方のお力をお借りできたらと思い質問させて頂きました。
基本的な文字だけの表示方法と、できればアニメーションのLoadingの表示方法をご教授下さい。
どうかお願いいたします(。_ _)。

Aベストアンサー

 あれはサイト側が設定するものではなく、見る人の使っているブラウザが勝手に決めてしまうものなのではないでしょうか。
 私は普段 Opera 8.5 を使い、時々 IE 6.0 を援用しています。同じサイトの同じアプレットを見ても、アプレットの出る前に前者ではグレイの矩形に applet loaded と表示され、後者では珈琲カップの絵が出ます。Opera にも IE にもアプレット表示時にはこうしろ、などと指定はしていませんし、第一指定する場所もありません。勝手にそうなっています。

 追記。アプレット表示枠の傍に「表示に時間が掛ります。暫くお待ち下さい。」というような断り書きを、幾つかのサイトで見掛けたことがあります。 
 

QCDドライブでDVDーRへの書き込み方法

最近DVDの書き込みドライブがなくても読み込みドライブさへあればDVD-Rへ書き込みをする方法があると耳にしたのですが本当なのでしょうか?
また、やり方も教えて下さい。orz

Aベストアンサー

筐体を分解して、レーザーの出力を上昇させて、
OSやソフトに誤認識させるだけの技術をもっていれば
もしかしたら可能かもしれません。

ですが、それだけの勉強する時間と費用とリスクを考えると
安い書込ドライブを購入する方が安全です。

結論。
「現実問題として不可能」

QGuiでGuiを操作

java の Gui 初心者です。


あるGUIのボタンを押したときに
他のGUIのデータを変える
というプログラムを考えています。

(たとえば
ステレオリモコンのGUIがあり、プラスボタンを押すと
ステレオのGUIにある JSlider(音量を表わす)が変わるなど)

Java Agent DEvelopment Framework(JADE)
を用いてやり取りをするのかとも考えましたが
もっと簡素なやり方があるのではと思い、質問いたしました。


ご存知の方いらっしゃいましたら

ボタンが押されたら処理をする(actionListener)中で
どのようにして他のGUIを操作するのか
という点を教えていただきたいです。

よろしくお願いいたします。

Aベストアンサー

jdk のdemo jdk/demo/jfc/SwingSet2/src/SliderDemo.java をまねて作ってみた。
GUI部分だけ提示します。あとは、これをJFrameやJAppletに載せれば動作します
import javax.swing.*;
import java.awt.event.*;// ActionListner
class SlideTest extends JPanel {
SlideTest(){
JButton bn;
JLabel sInfo = new JLabel( "SliderDemo.slidervalue");
JSlider slide = new JSlider( JSlider.HORIZONTAL, 0,100,50 )
SliderChanger listener = new SliderChanger(slide, sInfo);

setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
bn = new JButton("slid +10" );
bn.addActionListener(listener);
bn.setActionCommand("10");
add(bn);

bn = new JButton("slid -10");
bn.addActionListener(listener);
bn.setActionCommand("-10");
add(bn);

add(slide);
add(sInfo);
}

class SliderChanger implements ActionListner {
JSlider s1 ;
JLabel info;
public SliderChanger(JSlider s, JLabel f) {
s1 = s;
info = f;
}
public void actionPerformed(ActionEvent ev) {
String action = ev.getActionCommand();
int value;
try{
value = Integer.parseInt(action);
}catch(Exception ex){
value = 0;
}
s1.setValue( s1.getValue()+value );
info.setText( "SliderDemo.slidervalue :" + s1.getValue());
}
}
}

jdk のdemo jdk/demo/jfc/SwingSet2/src/SliderDemo.java をまねて作ってみた。
GUI部分だけ提示します。あとは、これをJFrameやJAppletに載せれば動作します
import javax.swing.*;
import java.awt.event.*;// ActionListner
class SlideTest extends JPanel {
SlideTest(){
JButton bn;
JLabel sInfo = new JLabel( "SliderDemo.slidervalue");
JSlider slide = new JSlider( JSlider.HORIZONTAL, 0,100,50 )
SliderChanger listener = new SliderChanger(slide, sInfo);

setLayout(new BoxLayo...続きを読む


人気Q&Aランキング

おすすめ情報