トップページ⇒tech
1001コメント308KB

【初心者】Java質問・相談スレ6【大歓迎】

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
JAVA初心者の方はこちらのスレで質問をしましょう。そして誰か教えてあげてください。

なお、ソースを貼るときには、半角空白が消える仕様のため、タブ1つを全角空白2つに
置換してから投稿しましょう。わからないときはどこがどうわからないのか?、動かな
いときはどこがどう動かないのか?なぜそう判断したのか、エラーメッセージや結果な
どと一緒にお書き下さい。雑誌や宿題などの疑問を質問するときは出展を明記したほう
が解決が早いです。

関連情報は >>2-10 あたりにあります。 (一部 dat落ちやHTML化待ち)


JavaScriptの質問はWeb製作板へどうぞ。
web制作管理
http://pc.2ch.net/hp/

パソコンの基本操作に関しては、PC初心者板や、各OS板などで質問しましょう。
パソコン初心者@2ch掲示板
http://pc.2ch.net/pcqa/

上級者の方で教える技術が無い方は下記スレでダベりましょう。
初心者無視! Java相談室 その9
http://pc3.2ch.net/test/read.cgi/tech/1021555964/


基本的にsage進行でおねがいします。また煽り厨は放置でお願いします。
http://pc.2ch.net/tech/kako/1026/10266/1026601774.html
0175デフォルトの名無しさんNGNG
>>168
> 私が困ってるのは3行目の 

> for (int a1=0;a1<99;a1++) {
0176デフォルトの名無しさんNGNG
>>173
そもそも初歩的に間違っていたのでは?
0177デフォルトの名無しさんNGNG
import com.nttdocomo.ui.*;

public class LabelDemo extends IApplication{
public void start(){
Panel panel=new Panel();
for(int i=1;i<=2;i++){
//テキスト表示位置左
Label leftLabel=new Label ("左寄せ",Label.LEFT);
leftLabel.setSize(96,15);
//テキスト表示位置中央
Label centerLabel=new Label("中央寄せ",Label.CENTER);
centerLabel.setSize(96,15);
//テキスト表示位置右
Label rightLabel=new Label("右寄せ");
rightLabel.setSize(96,15);
rightLabel.setAlignment(Label.RIGHT);
}

panel.add(leftLabel);
panel.add(centerLabel);
panel.add(rightLabel);

Display.setCurrent(panel);
}
}
どうすればいいんですか?
0178デフォルトの名無しさんNGNG
>>177
何したいんですか?
0179デフォルトの名無しさんNGNG
>>178
見ればわかるじゃん。
0180おれ馬鹿だからNGNG
>>179 じゃ説明して
0181デフォルトの名無しさんNGNG
IApplicationって、「interface Application」じゃなくて
「i-Application」なのか。。
0182デフォルトの名無しさんNGNG
>>181
i-mode Applicationだと思われ。

それを縮めてiAppli
0183デフォルトの名無しさんNGNG
>>177
panel.add(...)がループから外れてるよーに見えるが、
それでコンパイルできるのかしら
0184デフォルトの名無しさんNGNG
>>177
つーか、そもそも何でforループしてんの?
0185デフォルトの名無しさんNGNG
>>184
forはループのための命令です。
0186デフォルトの名無しさんNGNG
185 :デフォルトの名無しさん :02/09/10 11:03
>>184
forはループのための命令です。
0187デフォルトの名無しさんNGNG
こういうかんじか。

for (int i = 1; i <= 2; i++) {
  String message = ">>184 forはループのための命令です。";
}
System.out.println (message);
0188デフォルトの名無しさんNGNG
>>170
亀レスだけど array.length 使えよ…。
0189java厨NGNG
すみません、
JNI使って
アプレットからWindowsAPI使える方法を教えてください。
セキュリティの設定で解決できそうだと思うのですが〜
具体的には
java.security.AccessControlException:access denied〜
が発生しないで実行できるようになればと・・・
0190デフォルトの名無しさんNGNG
>>189 このへんに目を通せる方法があるぞ↓
http://java-house.jp/ml/topics/topics.html#security
0191デフォルトの名無しさんNGNG
インターネットオプションのプロキシの設定とか取ってくる方法はありますか?
0192デフォルトの名無しさんNGNG
タブで別れている数値データファイルがあるとき配列への読み込み方ってどうやったらいいんですか?
例えば
1 1 2 4
1 1 5 1
というファイルがあったとき2次元配列に読み込みたいのですが・・・
簡単な質問ですいません.
0193デフォルトの名無しさんNGNG
>192
やろうとしていることは「簡単」ではないのだが、
質問の仕方が厨房。
何がわからないのかもっと絞れ。

とりあえず、
java.io.BufferedReader.readLine()
java.util.StringTokenizer
java.lang.Integer.parseInt()
あたりを理解して出直してこい。
java.util.Vector もあった方がいいかな。
0194デフォルトの名無しさんNGNG
javaインストールしたけど
ファイルがいっぱいあってわからん。
どうすりゃいいの?

0195発破NGNG
HTMLやXMLを記述することをプログラミングといわないの
は何故ですか!?
0196デフォルトの名無しさんNGNG
HTMLやXMLはデータ記述言語で、
プログラミング言語でないから。
0197デフォルトの名無しさんNGNG
>>196
XMLに関しては反論が出そうな予感。
0198発破NGNG
なんでプログラミングじゃないんですか??
0199デフォルトの名無しさんNGNG
>>194
http://java.sun.com/j2se/1.4/ja/docs/ja/tooldocs/tools.html
0200デフォルトの名無しさんNGNG
>>198
プログラミングって何(何をすること)ですか?
0201デフォルトの名無しさんNGNG
>>198
データはプログラムじゃないから。
0202デフォルトの名無しさんNGNG
>>201
フォンノイマン型コンピュータはプログラムもデータとして扱われます。
0203デフォルトの名無しさんNGNG
>>195 >>198
スレタイも読めんのかヴォケ。スレ違いだ、逝って吉。
0204デフォルトの名無しさんNGNG
>>202
違う。
データとプログラムの区別なくメモリに展開されるだけ。
0205デフォルトの名無しさんNGNG
>>202
やっぱり出たか。その場合も
「プログラムはデータ」であって、
「データはプログラム」ではない。
0206デフォルトの名無しさんNGNG
FQはHTMLをプログラミング言語だと言ってのけます。
0207発破NGNG
読めなかった!!!!!!!
0208デフォルトの名無しさんNGNG
メールボムってどこで入手すんの?
0209発破NGNG
難しくて何言ってんのかわかんない・・・・
0210デフォルトの名無しさんNGNG
もしかして

発破=860

??????
0211発破NGNG
860って何??
0212デフォルトの名無しさんNGNG
なんかhtmlは繰り返し(forとかwhileとか)がないから
プログラム言語ではない。みたいなことをみたことがあります。
0213デフォルトの名無しさんNGNG
xsltはプログラミング言語?
0214デフォルトの名無しさんNGNG
SQLもプログラミング言語とは呼びたくない。
0215デフォルトの名無しさんNGNG
>>211
数字
0216デフォルトの名無しさんNGNG
>>212
HTMLは言語の一種ではあるが「プログラム」ではないから
プログラミング言語ではない。
純粋なSQLもそれ単独ではプログラムにならないので
プログラミング言語ではない。
(SQLPlusやTransact-SQLはプログラム言語)
0217デフォルトの名無しさんNGNG
>>212
>>216

そんなことに結論をみいだしたところで、なにもプログラムは組めないぞ。
試験でもやるのなら別だけど・・・。
0218デフォルトの名無しさんNGNG
でもHTMLをプログラミング言語だと本気で思っていたらかなり恥ずかしい。
0219java厨NGNG
>>190

判りました。
どうもです。
0220161NGNG
こういう質問はダメだったんですか?
0221デフォルトの名無しさんNGNG
>>220 = >>161
Javaとどういう関係が?
0222デフォルトの名無しさんNGNG
>>212
HTMLはHyperTextMarkupLanguage。
その名の通り文書を整形したりするだけの限られたSGMLアプリ。
0223デフォルトの名無しさんNGNG
JPopupMenuはマウスリリースイベントで使う者なんだけど、
これってミギクリックしか対応しないの?
左クリックで出したいのですが・・・
0224デフォルトの名無しさんNGNG
リソースバンドルってのを使って拡張子がpropertiesのテキストファイルから
値をとりだすようにしたんだけど、日本語が入ってると文字化けしちゃいました。
で、ネットで調べてみたらnative2asciiをつかって変換しなくちゃならない
ってのがわかり、文字化けは解決しました。

しかしそこでふと思いました。
そもそもテキストファイルに切り出すようにしたのは値を変更したいときに
ソース書き換えてコンパイルし直すのが面倒だからでした。
それなのに、native2asciiでいちいち変換しなくちゃならないんじゃ
コンパイルし直すのと大差なくてやっぱり面倒くさいです。

結局じぶんでファイル(形式はシフトJIS!とか決めてしまって)を読み出すのを
作り込むしかないんでしょうか。
0225デフォルトの名無しさんNGNG
>>224
エディタに細工するとか、こういう↓特製のエディタ使うとか
http://home2.highway.ne.jp/mutoh/tools/ResourceEditor/
0226デフォルトの名無しさんNGNG
>>224
文字コード変換を行うFilterInputStreamのサブクラスを作成する。
0227デフォルトの名無しさんNGNG
Javaについての素朴な質問です。
現在JLabelへアイコンを貼り付ける作業をしているのですが
条件によってアイコンを切り替えたいとおもいます。
そこで質問なんですが、切り替えする場合、
そのJLabelにもともとはってあるIconImageを無視してそのまま
setIcon()で新しいIconImageに切り替えてもいいんでしょうか?
そうするともともとのIconImageはガーページされるんでしょうか?
よろしくおねがいします
0228デフォルトの名無しさんNGNG
実行するプログラムの引数が、コンソールプログラムだったらStringクラスですよね。
で、このときファイルパスとか分かるわけないのにどうしてプログラムは目的のファイルがきちんと分かるのでしょう?
ただ単に実行しているプログラムのあるディレクトリを探索して合致するのを持ってきているだけですか?
0229デフォルトの名無しさんNGNG
>>227
ゴミ収集の事をゴミとは言わない
×ガーページ
○ガーベッジコレクション
0230デフォルトの名無しさんNGNG
ファイルの記載内容をいじって同じファイルに上書きするプログラムを作っているんですが、BufferedReaderで読んでいるときにBufferedWriterで書き出すことができないので困っています。
一時ファイルをつくってそのファイルの内容をコピーしようにも、コピーするようなメソッドはFileクラスには見当たらないですし・・・
0231デフォルトの名無しさんNGNG
>>230
一時ファイルに出力して正常終了できたら
元ファイル→バックアップファイル
一時ファイル→元ファイルと同じファイル名
にリネームするようにすれ。
異常終了した場合元のファイルが無傷ですむ。
0232デフォルトの名無しさんNGNG
>>227
-------------------------------------------------------------
import javax.swing.*; import java.awt.*; import java.io.*;
public class IconWatcher implements Icon {
  final Icon icon;
  public IconWatcher (Icon icon) { this.icon = icon; }
  public int getIconHeight () { return icon.getIconHeight (); }
  public int getIconWidth () { return icon.getIconWidth (); }
  public void paintIcon (Component c, Graphics g, int x, int y) { icon.paintIcon (c, g, x, y); }
  protected void finalize () throws Throwable { System.err.println ("finalized: "+ this); }
  public static void main (String[] args) throws Exception {
    JLabel label = new JLabel ();
    label.setIcon (new IconWatcher (new javax.swing.plaf.metal.MetalCheckBoxIcon ()));
    label.setIcon (new javax.swing.plaf.metal.MetalComboBoxIcon ());
    System.gc ();
    System.out.print ("enter ->");
    BufferedReader d = new BufferedReader (new InputStreamReader (System.in));
    d.readLine ();
  }
}
-------------------------------------------------------------
finalized: IconWatcher@786e64
enter ->
-------------------------------------------------------------
0233デフォルトの名無しさんNGNG
研究でJava言語でプログラムを書かなければならないのですが、
プログラムを書くのにオススメなエディタなどあれば教えて頂けないでしょうか?
ちなみに現在はMKEditorを使っています。
タブエディタなので複数のソースを編集するのには便利ですが、
もっといいものがあるのではないかと思って探してみたんですが、
コレというものが見つからないので・・・
0234デフォルトの名無しさんNGNG
俺はxyzzy+JavaTinyConsoleを使ってるが、
諸般の事情により素人にはおすすめできない
0235デフォルトの名無しさんNGNG
ところで、Java言語ってゆーひとたちは
COBOL言語、Pascal言語、C++言語、 BASIC言語とか言ったりするのだろうか?
0236デフォルトの名無しさんNGNG
>>235
言う。
0237227NGNG
>>232
ファイナライズ使えば確認できることをしらなかったです。
ありがとうござます
0238デフォルトの名無しさんNGNG
>>235 「言語」つけるとなんかアホっぽいな(w
0239デフォルトの名無しさんNGNG
「Pascal言語」「C++言語」はアリだろう。
「COBOL言語」はムリ。
「BASIC言語」は微妙。
0240デフォルトの名無しさんNGNG
C#言語
0241デフォルトの名無しさんNGNG
「Pascal言語」も微妙じゃない?
「〜言語」の「〜」の部分が長いのは「言語」をつけずに言うと思う。
0242デフォルトの名無しさんNGNG
JTableで質問があります。
JTable.getModel()でTableModelを得ようと思うのですが

DefaultTableModel usermodel;
JTable usertable();
・
・
・
usermodel=(DefaultTableModel)usertable.getModel();

上記の内容でコンパイルすると
「推奨されないAPIを仕様またはオーバーライドしています」
と警告されてしまいます。問題なく動くのですがちと不安です・・・。
回避できる良い方法は無いのでしょうか?
0243デフォルトの名無しさんNGNG
>234
xyzzyって機能がすごい一杯ついてますね。
たしかに便利そうなのですが、
素人なのでこんなに機能がテンコ盛りのソフトは使いこなせない・・・
コマタ・・・
0244デフォルトの名無しさんNGNG
>>242
JTable の getModel() は deprecated じゃないから、
>「推奨されないAPIを仕様またはオーバーライドしています」
ってのは別の箇所だと思うけど。
0245デフォルトの名無しさんNGNG
ところで、 Java で
> JTable usertable();
って出来たっけか?
0246デフォルトの名無しさんNGNG
>>241 COBOLは何々language、BASICは何々codeだけど、PascalはPascal。。
0247デフォルトの名無しさんNGNG
>>245 できん
0248デフォルトの名無しさんNGNG
JFileChooserクラスのsetFileFilterメソッドについて質問があります。

JFileChooseを使用してファイルダイアログを表示するさい
特定の拡張子だけを選択できるようにするためにFileFilterを使用しています。
FileFilterのクラスはdemoにあるExampleFileFilterクラスを利用しています。

ここで”特定の拡張子”だけを表示させたいのですが
ファイルダイアログのファイルタイプを見ると”全てのファイル”が選択できてしまう為
”特定の拡張子”だけ見えるファイルダイアログを表示させる事ができません。

ファイルタイプを見ると”全てのファイル”を選択できないようにする方法はないでしょうか?
0249デフォルトの名無しさんNGNG
>>248
日本語が狂ってないか?

>ファイルタイプを見ると”全てのファイル”を選択できないようにする方法はないでしょうか?

ファイルタイプのコンボボックスを開いても”全てのファイル”を選択できない、
という状態にする方法はないでしょうか?

ってこと?
0250デフォルトの名無しさんNGNG
いや、
「ファイルタイプを<見ても>”全てのファイル”を選択できないようにする」
の方がいいか
0251デフォルトの名無しさんNGNG
>>248
たぶんこれ↓でしょ。「setFileFilterメソッドについて」と決め付けたのが敗因。
http://java.sun.com/j2se/1.4/ja/docs/ja/api/javax/swing/JFileChooser.html
setAcceptAllFileFilterUsed
public void setAcceptAllFileFilterUsed(boolean b)
AcceptAll FileFilter を選択可能フィルタのリストで有効な選択肢として
使用するかどうかを決定します。false の場合、AcceptAll ファイルフィルタは
使用可能なファイルフィルタのリストから削除されます。true の場合、AcceptAll
ファイルフィルタは実際に使用されるファイルフィルタになります。
0252248NGNG
>249
確かに日本語めちゃめちゃでした。すいません。さらっと読み返した程度でバグに気づきませんでした^^;

正しくは
>250
が、お聞きしたかった質問内容でした。

>251
setAcceptAllFileFilterUsed(false);
でうまくいきました!
ありがとうございました。
0253デフォルトの名無しさんNGNG
抽象的な質問で申し訳ないんですが・・・。

バイトコードが一つあって、それの実行中に設計外の他のクラスを読ませる・・・例えば
本体があって、プラグインとなるコードを用意して本体の実行中に指定すれば、
新しい関数が使える!(もちろん引数と返り値はあわせておく)、みたいなことは
Javaで可能なのでしょうか?
0254困り中NGNG
JavaアプリケーションにWindowsからファイルをDnDできる事はわかったんだけど
Javaアップレットでも同じ事って出来るの?
俺様ただいまアップレットにファイルをDnDしようとすると
(IEがイベント拾ってるのか?)ファイルを開こうとしる
IEのダイアログが出てしまって困り中。
0255デフォルトの名無しさんNGNG
>>253 ClassLoader
0256デフォルトの名無しさんNGNG
>>253
ClassLoader#forName("class-name").newInstance()
Bean#instantiate(class-loader, "bean-name")
0257デフォルトの名無しさんNGNG
>>255-256
ありがとうございます。勉強してみます!
0258デフォルトの名無しさんNGNG
String s = "123"と
String s = new String("123")はどう違うんですか?
0259デフォルトの名無しさんNGNG
String s1 = "123";
String s2 = "123";
String s3 = "123";
String s4 = new String( "123" );
とかやって s1 〜 s4 を equals ではなく == で比較してみよー
0260デフォルトの名無しさんNGNG
イメージのわかない人間には無駄な説明じゃねーの
0261デフォルトの名無しさんNGNG
String a = "123";
String b = "123";
String c = new String("123");

評価式 a == b ---> true
評価式 a == c ---> false
評価式 a.equals(b) ---> true
評価式 a.equals(c) ---> true
評価式 a == c.intern() ---> true

0262デフォルトの名無しさんNGNG
new String (...)すると、ユニークなインスタンスであることを
保障できるわけだな。それだけか
0263デフォルトの名無しさんNGNG
/**
* Initializes a newly created <code>String</code> object so that it
* represents the same sequence of characters as the argument; in other
* words, the newly created string is a copy of the argument string. Unless
* an explicit copy of <code>original</code> is needed, use of this
* constructor is unnecessary since Strings are immutable.
*
* @param original a <code>String</code>.
* @throws NullPointerException
* if <code>original</code> is <code>null</code>
*/
public String(String original) {
this.count = original.count;
if (original.value.length > this.count) {
// The array representing the String is bigger than the new
// String itself. Perhaps this constructor is being called
// in order to trim the baggage, so make a copy of the array.
this.value = new char[this.count];
System.arraycopy(original.value, original.offset,
this.value, 0, this.count);
} else {
// The array representing the String is the same
// size as the String, so no point in making a copy.
this.value = original.value;
}
}
0264258NGNG
どっちでもいいってことですか?
0265デフォルトの名無しさんNGNG
>>264
状況によるのでは?
オブジェクト生成のコストを削減しようとしたら、cについても
String c = "123";
のほうが良いと思われる。
0266258NGNG
>>265
どんな状況ですか?
0267デフォルトの名無しさんNGNG
>>266
馬鹿ですか?
0268デフォルトの名無しさんNGNG
通常の利用では不要、というか、インスタンスを増やすのは害でしかないぞ。
0269デフォルトの名無しさんNGNG
馬鹿な人間は
String a = new String("123");
String b = new String("123");
String c = new String("123");
とやってくれ。

String d = new String( new String("1") + new String("2") + new String("3") );
でもイイと思う。
0270 ◆k/Ubp.Kg NGNG
>>269
それでも気が付かない奴はいると思われ.
0271デフォルトの名無しさんNGNG
某 I のフレームワークがさ、そこかしこで

public String getHogeHoge(){
  …
  // ○○なら空文字を返す
  return new String();
}

とかやりまくってるわけよ。そんなに細かいオブジェクト作りまくったら GC の
Sweep に 5 秒もかかって当然だっつーの。「アプリでメモリリークがないか確認
してください」なんて筋弛緩剤並みのメールよこすなよ。トホホ...
0272デフォルトの名無しさんNGNG
細粒度で短命なオブジェクトの乱発ってのは、プロトタイプ段階までか。
しかし一度それに依存したインターフェイスを設計すると、
チューニングに伴い大幅な設計変更を余儀なくされる罠?
0273デフォルトの名無しさんNGNG
Swingアプリを作成しているんですが質問があります。
よく市販ソフトを立ち上げてる最中(初期化中)にそのソフトのタイトルイメージ
が表示されるものがほとんどですよね。今、それを再現しようと思っているのですが
一体どのようにしてやるのでしょうか?
コンストラクタでタイトルイメージ表示用のJDialogを表示させようとすると
OutOfMemoryが出てしまいます・・・ご伝授おねがいします
0274デフォルトの名無しさんNGNG
> コンストラクタで

なぜ
■ このスレッドは過去ログ倉庫に格納されています