【初心者】Java質問・相談スレッド112【大歓迎】
at TECH
[前50を表示]
300:デフォルトの名無しさん
08/02/15 23:46:17
アプリの中のデフォルトフォントを設定したい。
Label l = new Label("");
l.setFont(f);
をいちいちインスタンスごとにやるのではなくて、main()が始まったらすぐに
デフォルトフォントを設定して、Label l = new Label("");した時点で
そのフォントが適用されているようにはできませんか?
301:デフォルトの名無しさん
08/02/15 23:49:50
Labelをextendsしたらあかんの?
自前の俺Label作ったらええやん
302:デフォルトの名無しさん
08/02/15 23:52:16
>>300
Javadocには親のフォントを継承するかのように書いてあるから、
FrameにsetFontすればいいんじゃなかろうか
303:デフォルトの名無しさん
08/02/15 23:52:59
Javaのソースコードを構文解析木に変換したいです。
たとえば
a = max(b,c/2);
だったら
=
/ \
a max
/ \
b /
/ \
c 2
のような木を得たいです。出力のフォーマットはどのようなものでも構いません。
何かご存知の方いらっしゃいましたらよろしくお願いします。
304:デフォルトの名無しさん
08/02/15 23:56:01
JavaCCでググれ。
BNFが有るのが前提だったら楽。
305:デフォルトの名無しさん
08/02/16 00:34:55
>>301
Label.setFont()がありましたが、setDefaultFont()で解決しました。
306:デフォルトの名無しさん
08/02/16 00:50:02
>>302
ありがとうございます。あきらめました。
public class OrigApp extends IApplication {
public OrigPanel oPanel;
public void start() {
oPanel = new OrigPanel();
oPanel.setFont(Font.getFont(Font.FACE_SYSTEM | Font.SIZE_SMALL | Font.STYLE_PLAIN));
Display.setCurrent(oPanel);
307:デフォルトの名無しさん
08/02/16 00:52:49
↑import com.nttdocomo.ui.Font;
が無いとFontのシンボルが解決でないというコンパイルエラーです。
Fontというクラス名が衝突しているのですか?
308:デフォルトの名無しさん
08/02/16 00:55:39
iアプリかよ・・・・・。
>>307
いみがわからん。
インポートしちゃいかんの???
309:デフォルトの名無しさん
08/02/16 00:59:36
>>308
import com.nttdocomo.ui.*
こう書けばFontが使えると思っていましたが、
>>306のソースでは
import com.nttdocomo.ui.Font;
でなくてはコンパイルできない理由が分かりません。
310:デフォルトの名無しさん
08/02/16 01:09:57
なるほど。
じゃぁ、Fontというクラス名の衝突という認識で正しい。
import java.awt.*;
とかやってないかい?
そこのFontクラスがある。
つーか普通Fontっていうとjava.awt.Fontだとおもうんだが。
まぁ、ソースに明示的に
oPanel.setFont(com.nttdocomo.ui.Font.getFont(com.nttdocomo.ui.Font.FACE_SYSTEM | com.nttdocomo.ui.Font.SIZE_SMALL | com.nttdocomo.ui.Font.STYLE_PLAIN));
って書いてもいいけどなw
ま、Eclipseとか使えってことだ。
311:デフォルトの名無しさん
08/02/16 01:17:23
java初心者です
Cだとif文で〜のときは変数○に値□を入れて
ーのときは変数○に値△をいれる
ってのができるのにjavaはスコープの関係上それができません><
一体どうやってやるんですか??
312:デフォルトの名無しさん
08/02/16 01:18:04
>>310
import java.awt.Font;は、携帯用のコンパイラだからエラーでしたが
クラス名の衝突なんでしょうね。?
Eclipse使ってないことまでバレちゃうんだな。
Eclipse使えと言われているんだが。
313:デフォルトの名無しさん
08/02/16 01:20:36
>>311
何を言っているんだ C のスコープも同じだろ (最近の ANSI C/C++ は違うのか?)。
String ○ = null;
if(〜){
○ = "□";
} else if(ー){
○ = "△";
}
314:デフォルトの名無しさん
08/02/16 01:21:09
>>311
おそらくキャストが間違っている
315:デフォルトの名無しさん
08/02/16 01:22:04
>>311
おそらく再起動したら直る
316:デフォルトの名無しさん
08/02/16 01:23:22
>>311
おそらく激しく勘違い
317:デフォルトの名無しさん
08/02/16 01:25:15
>>312
あーごめん。
おれiアプリとか書いたこと無いから「クラス名の衝突」に関してはウソかもシレン。
IDE使ってないのが解るのは
import java.awt.*;
とかでアスタリスクを使ってるから。
Eclipseだったら使ってるクラスのみをインポートするし
作法的にも衝突が起きないように省略するとかしない。
スタティックインポートとかつかえんよね?iアプリだと。
コンパイルする前からエラー教えてくれるし、俺は初心者であっても使うべきだと思う。
今ならEclipseじゃなくてNetBeansでもいいとおもう。
318:デフォルトの名無しさん
08/02/16 01:26:58
なんか日本語むちゃくちゃだなorz.
まだ会社なんだ・・・・・許してくれ。
319:311
08/02/16 01:28:52
初期化してなかっただけでした\(^o^)/
320:デフォルトの名無しさん
08/02/16 01:37:47
>>317
スタティックインポートって聞いたことがありません。
まだインポがうまく使いこなせていませんが、
「Java謎+落とし穴徹底解明」を読んで、クラス名の衝突なのでは、と思いました。
321:デフォルトの名無しさん
08/02/16 01:45:24
Java5から導入されたんだが、
クラス名から書かなくてもメンバを参照できるってだけ。
この場合だと
import static com.nttdocomo.ui.Font.FACE_SYSTEM
って宣言しておけば
Font.getFont(FACE_SYSTEM ・・・
って書けるってだけ。
あんまり便利でもないし、積極的に使う場面でもないな。
322:デフォルトの名無しさん
08/02/16 03:18:28
<? extends Hoge> と <? super Hoge> とかってどう違うの?
323:デフォルトの名無しさん
08/02/16 03:20:57
Hogeのサブクラスに限定するか、Hogeのスーパークラスに限定するかの違い
324:デフォルトの名無しさん
08/02/16 03:23:09
<? extends T> Tの派生クラスだったらなんでもいい
<? super T> Tのスーパクラスだったらなんでもいい
325:デフォルトの名無しさん
08/02/16 03:58:46
class A{}
class B extends A{}
class C extends B{}
とした場合、
List<? extends B> には B, C が入れられ
List<? super B> には A, B (Object も) が入れられる
って事で良いの? スーパークラスに限定が必要性ってどういう状況で出るんだろ。
326:デフォルトの名無しさん
08/02/16 04:04:25
別にクラスだけじゃなくて、インターフェースも指定できるから、
状況的にはあるとおもうが。
327:デフォルトの名無しさん
08/02/16 04:08:26
ん? ゲネリクス の型チェックってコンパイル時の静的な奴だから
<? super B> としても A にキャストした C のオブジェクトは OK になっちゃうんじゃないの?
328:デフォルトの名無しさん
08/02/16 04:15:07
>>325
たとえば、java.util.Collections#copyとか。
<? extends T>なListの要素を<? super T>なListにコピーするメソッド。
Tのサブクラスが入ったListはTのスーパークラスを入れられるListにコピー可能。
329:デフォルトの名無しさん
08/02/16 04:35:17
List<? extends B> bext1 = new ArrayList<A>(); // エラー
List<? extends B> bext2 = new ArrayList<B>();
List<? extends B> bext3 = new ArrayList<C>();
List<? super B> bsup1 = new ArrayList<A>();
List<? super B> bsup2 = new ArrayList<B>();
List<? super B> bsup3 = new ArrayList<C>(); // エラー
↑これはまぁ分かりますと。
List<? extends B> bext = new ArrayList<C>();
bext.add(new A()); // エラー
bext.add(new B()); // エラー
bext.add(new C()); // エラー
↑何で全滅やねん!
List<? super B> bsup = new ArrayList<A>();
bsup.add(new A()); // エラー
bsup.add(new B());
bsup.add(new C());
↑B のスーパークラスってのは代入の時のみで、
実際に適用するオブジェクトの型を上位に限定するんじゃないのか。
330:デフォルトの名無しさん
08/02/16 04:47:20
>>329
>List<? extends B> bext
List<? extends B> ってことは、たとえば List<D> だったら
add の引数は D でなければならないわけで、
その場合は A も B も C も add 出来ないことになる。
? が確定しない限り、安易に add 出来ない。
>List<? super B> bsup = new ArrayList<A>();
こっちは、? が D ではありえない。List<Object> か List<A> か List<B> しかない。
List<B> かもしれないことを考えると、A は add できない。
B だったら、List<Object> でも List<A> でも List<B> でも OK だ。
331:デフォルトの名無しさん
08/02/16 05:06:04
>>330
前半、全て NG なら何のためにそういった書き方が出来るんでしょうか?
さらに別に参照を受け渡すためか class D extends C{} を作って
List<D> dlist = bext; とかしてみましたがエラーでした。
後半、言語設計する側の理屈で言えばそうですね。使う側の立場で宣言だけ見ると
B のスーパークラスだけ add できるリストなのかと思ってしまいそうですが。
何でこうゲネリックウsって消化悪いんでしょうか。誰ですか設計したのは。
332:デフォルトの名無しさん
08/02/16 06:07:25
>>330
なるほど。ありがとうございます。(質問者じゃないけれど)
かなり理解が進みました。
// 代入文を見ると、ついつい右辺の型で考えてしまうのよね…
333:デフォルトの名無しさん
08/02/16 10:25:49
独習Javaをやっているんですが、
本が厚すぎてコードを打っているうちにパタンと閉じてしまいます。
何かいい方法はありませんか?
334:デフォルトの名無しさん
08/02/16 10:33:37
板違い
335:デフォルトの名無しさん
08/02/16 10:55:08
章ごとに小分けして製本する。
336:デフォルトの名無しさん
08/02/16 10:57:36
>>333
独習Javaをやらない。
337:デフォルトの名無しさん
08/02/16 11:01:09
>>333
お買い上げありがとうございます。
URLリンク(www.amazon.co.jp)
ワニクリップか洗濯バサミか何かでもいいけど。
338:デフォルトの名無しさん
08/02/16 11:25:58
独習Java読んでみたけどあれはひどいね。
J2SE5.0対応を謳ってるくせに、
実際は1.3以前の内容しか載ってない。
例えば、キーワードにassertやenumが無かったり。
よくあんな本が売れるもんだ。
339:333
08/02/16 11:26:25
>>337
今、購入しました。
商品が届くまでは本に「やさしいJAVA」を乗せておくことにします。
340:333
08/02/16 11:34:57
>>338
それを聞くとモチベーション下がるなぁ。まだ第2章だっていうのに。
このスレには独習にお世話になった人はどのくらいいるのだろうか。
341:デフォルトの名無しさん
08/02/16 11:48:09
ノ
お世話になったよ。
5.0は対応しているだけで、5.0用ってわけじゃないからなぁ。
1.4系を独習するという事で割り切れば今でも良本。
そもそも5.0系でまともな入門本ってあるかい?
342:デフォルトの名無しさん
08/02/16 12:09:23
>>331
Java言語仕様一通り読んだけど、Genericsまわりははっきり言ってわけわからん。
つか、理解を完全に放棄したw
何らかの数学的背景があって、その範疇で整合性を取っているような感じだったが……。
343:デフォルトの名無しさん
08/02/16 12:18:37
>>341
assertが載ってないから1.3系だよ。
1.4系の独習なら、他にもっといい本があるだろう。
5.0系の入門書は知らないけど、
1.4系なら結城さんの本とかいいんじゃないの?
5.0に対応してたかも知れないし。
344:デフォルトの名無しさん
08/02/16 12:22:00
java(TM)plug-inの致命的エラー
XP IE7 導入
JAVAの再インストール
すべてやってもエラーでみれません
対処方法教えていただけませんか?
345:デフォルトの名無しさん
08/02/16 12:31:02
>>331
>前半、全て NG なら何のためにそういった書き方が出来るんでしょうか?
それは、get の方を考えてみればわかる。
List<? extends B> の場合、保持してる要素は少なくとも B か
そのサブクラスであることがわかってるから、get は B を返すことができる。
List<? super B> の場合、List<Object> という可能性があるから、
get は Object でしか返せない。
>List<D> dlist = bext;
それは無理。
bext は List<A> かもしれないし。
List<D> の get は D を返すわけだから、A とか入ってたら困るだろう。
346:デフォルトの名無しさん
08/02/16 12:39:20
javaVM1.2以降の時だけGraphics2Dを使いたいのですが、
バージョンをチェックして振り分けてもMSjava1.1だとランタイムエラーになってしまいます。
SUNjava1.1はキチンと振り分けられて動いています。
これって対処できますか?
347:デフォルトの名無しさん
08/02/16 12:39:26
理由を聞けばもっともだとは思うが、あんだけ時間かけといて何でこんなgdgdなんだろうか。
まぁ誰の声が一番でかいかを争ってたんだろうというのは想像に難くないけど。
348:346
08/02/16 12:55:07
具体的にはClassNotFoundExceptionが出ます。
if文で1.1以下の時だけそのクラスを使わない処理にしたら、
sun-java1.1はエラーを吐かなくなりましたが、
ms-java1.1はエラーで止まってしまいます。
349:hage
08/02/16 12:57:37
質問です。(コードは以下に連投します)
キャンバス上に JComboBox を混ぜたプログラムを作ってるのですが、
マウスドラッグ中に JComboBox がちらついてしまうのが嫌なのですが、
なんとかなりませんでしょうか?
import java.awt.*; import java.awt.event.*; import javax.swing.*;
public class Test extends JFrame{
private Image offs; private JComboBox cb; private Point mp;
public Test(){ init(); }
private void init(){
Container c = getContentPane();
c.setPreferredSize(new Dimension(300, 300));
c.setLayout(null); // レイアウト無し
// JComboBox の設定
String[] ss = {"hage", "hige", "huge", "hege", "hoge"};
cb = new JComboBox(ss); c.add(cb); cb.setBounds(30, 30, 100, 20);
pack(); repaint(); setResizable(false); setVisible(true);
// ドラッグで再描画
this.addMouseMotionListener(new MouseMotionAdapter(){
public void mouseDragged(MouseEvent me){
offs = null; mp = me.getPoint(); repaint();
}
});
}
350:hage
08/02/16 13:00:11
public void paint(Graphics g){
if (offs == null){
offs = createImage(getWidth(), getHeight());
Graphics g2 = offs.getGraphics();
g2.setColor(Color.BLUE);
g2.fillRect(0, 0, getWidth(), getHeight());
g2.setColor(Color.RED);
if (mp != null) g2.fillOval(mp.x - 2, mp.y - 2, 4, 4);
cb.repaint();
}
g.drawImage(offs, 0, 0, null);
}
public static void main(String[] args){ new Test(); }
}
351:デフォルトの名無しさん
08/02/16 13:01:23
>>346
Graphics2D を使う部分だけ別のクラスに分けておいて、通常のクラス名で new する代わりに
Class#forName でロードして Class#newInstance でインスタンス化すれば大丈夫かと思うが、、、
(Graphics2D を使うクラスの名前は Class#forName の引数以外には一切書かない)
そんな昔の、切り捨てたら?
352:デフォルトの名無しさん
08/02/16 13:12:32
>>349
とりあえず、JFrameに直接描くな。
JComponentを派生して自前のキャンバスクラスを作り、そのpaintComponentで描け。
353:hage
08/02/16 13:19:04
すいません。書き直しました。本来のプログラムのほうも、構成はこんな感じになっています。
(以下、連投)
import java.awt.*; import java.awt.event.*; import javax.swing.*;
public class Test extends JFrame{
public static void main(String[] args){ new Test(); }
public Test(){ init(); }
private void init(){
MyCanvas canvas = new MyCanvas();
getContentPane().add(canvas);
pack(); repaint(); setResizable(false); setVisible(true);
}
}
354:hage
08/02/16 13:22:11
class MyCanvas extends JComponent{
private Image offs; private JComboBox cb; private Point mp;
public MyCanvas(){ init(); }
private void init(){
this.setPreferredSize(new Dimension(300, 300));
this.setLayout(null); // レイアウト無し
String[] ss = {"hage", "hige", "huge", "hege", "hoge"}; // JComboBox の設定
cb = new JComboBox(ss); this.add(cb); cb.setBounds(30, 30, 100, 20);
// ドラッグで再描画
this.addMouseMotionListener(new MouseMotionAdapter(){
public void mouseDragged(MouseEvent me){
offs = null; mp = me.getPoint(); repaint();}});
}
public void paint(Graphics g){
if (offs == null){
offs = createImage(getWidth(), getHeight()); Graphics g2 = offs.getGraphics();
g2.setColor(Color.BLUE); g2.fillRect(0, 0, getWidth(), getHeight());
g2.setColor(Color.RED);
if (mp != null) g2.fillOval(mp.x - 2, mp.y - 2, 4, 4);
}
g.drawImage(offs, 0, 0, null);
cb.repaint();
}
}
と、途中で気づいたのですが、 paint を paintComponent にすると治りました・・・
paintComponent というのをはじめて知りました orz
勉強になりました。ありがとうございました
355:デフォルトの名無しさん
08/02/16 13:22:14
>>351
Java 系のグループじゃそう言われてるけどなぁ、先日ニュース系の板から秘密で誘導して
統計とって見たら一番多かった Java 6 に続いて 5.0 と MS JVM 1.1 がほぼ同じだったよ。
もっとも、入れてもない奴がダントツだったけど。
356:デフォルトの名無しさん
08/02/16 14:52:42
>>351
ありがとうございました。でもさっぱりわかりません。
>>355
ライバルが1.1サポートなんですよ(^^;
どうやらクラスローダーの挙動が違うのが原因なのかな。
357:デフォルトの名無しさん
08/02/16 15:03:36
xmlをhttpでpostするサンプルをください!
358:デフォルトの名無しさん
08/02/16 15:56:33
本みながらやってるんだけど
Iteratorとかvectorに<E>みたいなのをつけろって
eclipseでやると注意されるのですが
そこにIteretorでStringをあつかうとき<String>みたいに
やったら動きました。
本には書いてないので<>がなにかわかりません。
本だとIteratorでObjectにして好きなクラスを返すみたいになってるけど、
それはできないんですか?
359:デフォルトの名無しさん
08/02/16 16:06:35
5.0で導入されたジェネリクス。
本に従ってやるならば、Eclipseでコンパイラレベルを1.4に汁
360:デフォルトの名無しさん
08/02/16 16:37:08
正規表現で
hoge[0]=○○
という文字列を検索したいのですが
半角[]をどうやって表現すればいいのかわかりません><
361:デフォルトの名無しさん
08/02/16 16:45:53
>>355
URLリンク(www.adobe.com)
Flashのアドビの発表でjavaの普及率が84.6%ってなってるけど?
これだけあれば個人的には十分。
2ちゃんねらは過去にFlashのリンクを何度も踏まされてるから
インストール率が高いとかかも。
362:デフォルトの名無しさん
08/02/16 16:57:59
>>350
正規表現としては\でエスケープすればOK
Javaの文字列としては・・・
\\[で[にマッチするということになるな
363:デフォルトの名無しさん
08/02/16 17:33:57
>>356
ClassNotFoundが出たら1.1だと判断すれば?
で、>>351が言うように、1.1に存在しないクラスを直接参照しないようにする。
364:デフォルトの名無しさん
08/02/16 17:40:55
>>362
ありがとうございます!
てっきり\ひとつだけだと思ってました><;
365:デフォルトの名無しさん
08/02/16 17:59:34
Derbyの使い方について教えてください
366:デフォルトの名無しさん
08/02/16 18:23:57
>>365
このスレでDerbyの使い方講座を開講しろっていうのか?
Apacheのページへ行ってDerbyのドキュメントを読め。webで検索しろ。
ここで質問するならもっと質問を具体的にして絞り込め。
367:デフォルトの名無しさん
08/02/16 18:35:23
>>365
(1) derby.jarファイルにクラスパスを通す
(2) Class.forName("org.apache.derby.jdbc.EmbeddedDriver"); を呼ぶ
(3) DriverManager.getConnection("jdbc:derby:test;create=true") で Connection を取得する
(4) 好きなSQL文を実行する
(5) Connection を閉じる
(6) DriverManager.getConnection("jdbc:derby:;shutdown=true"); を呼んでシャットダウンする
368:デフォルトの名無しさん
08/02/16 20:40:35
>>331
T な変数には、<? extends T> なものを代入できるし、
<? super T> な変数には、Tはものを代入できるので、
返値に対してコバリアント的にしたい場合は、extends にして
引数に対してコバリアント的にしたい場合は、super にする
369:デフォルトの名無しさん
08/02/16 21:27:43
制御文について質問なのですが
if(a||b||c&&d)というのはaもしくはbまたはcかつdがtrueの時if文を実行ですよね?
ではif(a||b&&c||d)というのはaもしくはbがtrueかつcまたはdがtrueの時if文を実行。
ということで良いんですか?この仮定が合ってるとすると条件式の順番にも気をつけなくてはいけませんよね?
370:デフォルトの名無しさん
08/02/16 21:28:43
>>356
ClassNotFoundException は、それを実行しようとしているかどうかに関わらず
それが分かったらいつVMが投げても構わないって仕様じゃなかったっけ。
それぞれの実装を別のクラスローダで読み込むのがいいんじゃまいか
371:デフォルトの名無しさん
08/02/16 21:35:42
>>369
日本語でおk
372:デフォルトの名無しさん
08/02/16 21:47:12
>>369
Java とは関係なさそうだけど。
* と + に優先順位があるのと同じ。
a || b || c && d => a || b || (c && d)
a || b && c || d => a || (b && c) || d
373:369
08/02/16 21:51:17
今一良く分かりませんorzここから先はGoogle先生に聞いてみます。
ありがとうございました。
374:デフォルトの名無しさん
08/02/16 22:34:42
>369
もう少し解りやすく、他人に伝わるよう書く努力が欲しい。
if(a||b||c&&d)というのは、『a』もしくは『b』または『cかつd』のいずれかがtrueの時にif文を実行ですよね?
ではif(a||b&&c||d)というのは、『aもしくはbがtrue』かつ『cまたはdがtrue』の時if文を実行。
ということで良いんですか?
質問はこういう意味? なら>>372
ググるときは、『Java』、『演算子』、『優先順位』でOK。
375:デフォルトの名無しさん
08/02/16 22:45:04
古いデータと新しいデータを比較するプログラムを作ってます
データを取得してテキスト形式で保存→新たに取得して比較→二日以上たったデータは削除
という感じなのですが、二日たったことを判断するのはどういう風にすればいいのか悩みます。。
ちなみにデータ取得時の日時は年/月/日/時/分まで保存してます
簡単に日にちで比較すると31日とか30日の判断もあるし、うるう年とかもあるので悩んでます><
いいアイディアはないでしょうか?
376:375
08/02/16 22:50:32
良い方法をひらめきました!
どうもすいませんでした><;
377:デフォルトの名無しさん
08/02/16 23:15:14
ひらめいたならいいけど、そういうのはミリ秒で保存しといた方が良いよー
378:デフォルトの名無しさん
08/02/17 00:07:31
>>361
そんないつの時期に取ったか分からん統計出されても知らんがな。 Win に MSJVM が
デフォルトインストールだった時代や JavaScript のアプレット enable フラグだけ見てたら
それくらい行くだろうね。少なくとも 30 秒以上滞在してアプレットが起動しない環境は
倍以上居る。
379:デフォルトの名無しさん
08/02/17 00:35:10
HashMapのKeyと値にそれぞれ変数から代入したんですが保存されないみたいなんです
上記の方法で次々に値を代入していくにはどうすればいいですか?
380:デフォルトの名無しさん
08/02/17 00:41:28
>>379
HashMapにaddするときに使ってる変数を変に使いまわしていないか?
HashMapに代入されるのは結局の所は参照なので参照先を書き換えると変わるぞ
381:デフォルトの名無しさん
08/02/17 00:55:40
>>380
ありがとうございます
参照先が変わってるのかなあ
やろうとしていることは HTMLで入力した値を
サーブレットに渡してintにランダム変数を入れて
それをhashmapのkeyにして値も代入
一回目はうまくいくんですけど二回目以降に値が
リセットされてしまいます
382:デフォルトの名無しさん
08/02/17 01:04:26
>>381
…?
HashMap のインスタンスが毎回生成されてる、なんてオチは無いデスヨね
383:デフォルトの名無しさん
08/02/17 01:12:22
>>382
た、たぶんそれです
ありがとうございますOrz
もう少しがんばってみます
384:デフォルトの名無しさん
08/02/17 01:15:16
サーブレットとか知る前にやることがある気がするんだが。
385:デフォルトの名無しさん
08/02/17 01:18:07
自分でもまったくそう思いまする
386:デフォルトの名無しさん
08/02/17 11:15:50
手元の W-ZERO3 に JBlend が乗ってるんで暇つぶしに何か作れないかと思ったんだけど
いかんせん組み込みっぽいのはやったことがなくて。MIDP 2.0? とやらに対応させれば
良いんでしょうか? それとも専用の SDK でも買わなければけいないんでしょうか?
携帯の開発情報はそこそこありますがそれと同じと思って良いんでしょうか。
387:デフォルトの名無しさん
08/02/17 11:21:17
「'javac' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。」
PATHの設定がどうしても出来ないためこれが出てしまっていると思うんですが、
>>1に書かれているURLが消えているのか飛べないです。
他に本も色々なサイトも見ましたが分かりません。
どこか分かりやすく説明しているところは無いでしょうか?
388:デフォルトの名無しさん
08/02/17 11:28:48
URLリンク(www.google.co.jp)
389:デフォルトの名無しさん
08/02/17 11:44:22
ありがとうございます。
しかしやはりどうも落としたバージョン(jdk-6-doc-ja)
だと上手くいかないようなので、申し訳ないのですが、質問を変えます。
改めてj2sdkを落としたいんですが、場所がどこなのか分かりません。
Javaの公式サイトから探しましたが、日本語に変換しても
別のページに飛ぶとまたすぐ英語になってしまうので、読めませんし訳が分かりません。
具体的なURLを直接教えて下さると大変助かります
390:デフォルトの名無しさん
08/02/17 11:45:34
> jdk-6-doc-ja
コーヒー返せwww
391:デフォルトの名無しさん
08/02/17 11:47:56
やはり何かおかしかったですかねw
やたら重いんで何かおかしいと思ったんですが。
でも英語だらけで分からないんですよ、ほんと。
国際派じゃないとこれから生きていけそうもないな
392:デフォルトの名無しさん
08/02/17 11:54:44
doc
document
393:デフォルトの名無しさん
08/02/17 11:55:53
国際派じゃなくても>>388見れば普通は何が言いたいか解る
ググれカス
394:387
08/02/17 11:56:23
困ったな…調べてみてはいるんですが、どうもありそうにないですね。
ほんとに日本語でおkという感じなんですが…読めない。
やさしいJAVA2版に書かれていたURLも消えているようですし、
今の主流はもうj2sdkじゃないんでしょうか?
395:デフォルトの名無しさん
08/02/17 11:58:13
>>389
確かにJDKとは書いてありますが、ドキュメントの方を取得されたようで。
Java SE Downloads
URLリンク(java.sun.com)
リンク先には、JDK, J2EE, NetBeans, JRE と並んでいますが、
それぞれの説明を読む等で適切なものを選んでインストールしてください。
>>391
ま、ゆっくりやってくださいな。好きこそ物の上手なれとも言いますし。
アルファベットが読めないとか辞書を触ると目が見えなくなるとか言う人なら
更に教育を受けるか、病院に行った方が良いと思いますが。
396:387
08/02/17 11:58:16
やっと見つかった…検索の仕方がまずかったみたいです。
お騒がせしました
397:387
08/02/17 12:00:23
>>395
ご立派な嫌味をどうもw
知識が豊富で羨ましいです
398:デフォルトの名無しさん
08/02/17 12:01:48
本当ご立派な
399:デフォルトの名無しさん
08/02/17 12:06:24
>>397は人格に問題ありすぎだな。
あんなに懇切丁寧なレスを嫌味だなんて。
というか、有用な情報を見いだす目が著しく欠如しているってことか。
JDK落とすだけでこれだから、この先は想像を絶するいばらの道が待っていることだろう。
400:デフォルトの名無しさん
08/02/17 12:13:34
初心者相手にいちいち優位に立とうとするなよ。
401:デフォルトの名無しさん
08/02/17 12:43:04
Java初心者ってか対人関係初心者だけどなw
402:デフォルトの名無しさん
08/02/17 12:47:28
おまいも十分そう見えるが。
403:デフォルトの名無しさん
08/02/17 12:57:40
>>402
>>387本人乙。
404:デフォルトの名無しさん
08/02/17 13:14:00
そう思いたいのですね。
405:デフォルトの名無しさん
08/02/17 13:36:39
そのほうが面白いし。
406:デフォルトの名無しさん
08/02/17 13:37:24
そうか。
407:デフォルトの名無しさん
08/02/17 13:48:17
うん。
408:デフォルトの名無しさん
08/02/17 13:53:49
こ。
409:デフォルトの名無しさん
08/02/17 15:16:04
ころころうんこ
410:デフォルトの名無しさん
08/02/17 15:17:25
食物繊維取れ
411:デフォルトの名無しさん
08/02/17 15:39:49
普通にSunのページわかりにくい
412:デフォルトの名無しさん
08/02/17 15:46:13
非開発者向けではどう見てもないよな。
母さんにあそこから最新の JRE 落として入れろとはとても言えない。
413:デフォルトの名無しさん
08/02/17 16:01:35
ほんと、SUNにはもっと普及率を上げるための努力をしてもらいたい。
まずはインストールをもっと簡単にして。
414:デフォルトの名無しさん
08/02/17 16:50:00
>>1 のリンク死んでるな。というかサーバが停止してるようだが。
415:デフォルトの名無しさん
08/02/17 17:55:48
>>412
もっともです。テンプレっぽいのに追加で。
**** 開発環境が必要の場合は ****
>>5
**** 実行環境だけが必要の場合は ****
■ Java ソフトウェアのダウンロード
URLリンク(www.java.com)
416:デフォルトの名無しさん
08/02/17 17:59:58
ム板なんだし JRE の落とし方はどうでも良くない?
かえって混乱すると思う。
417:369
08/02/17 18:54:29
なるほど!何とか理解できました。>374 さん thx
418:デフォルトの名無しさん
08/02/17 18:59:59
>>416
ところがEclipseを使うのにJDKは不要だ罠
新人研修等ではじめからEclipseでスタートする場合、
JDKを入れたことがないという人も出てきそうなご時世だね。
419:デフォルトの名無しさん
08/02/17 20:16:41
Arrays.sortを使って数値の配列をソートしたんですが
これってソート後の配列の添え字情報とかも取得できないんですか??
たとえば
ソート前
a[0]= 2
a[1]= 1
a[2]= 3
↓ ソート
ソート後
a[1]= 1
a[0]= 2
a[2]= 3
の[1],[0],[2]の情報を取得したいですー!何か方法ありませんかー!
420:デフォルトの名無しさん
08/02/17 20:25:55
その添え字情報を何に使うんだ?
ただ単に安定なソートがしたい、ってだけなら、
List<Integer> lst = Arrays.asList(2, 1, 3);
Collections.sort(lst);
でOKじゃない?
421:デフォルトの名無しさん
08/02/17 20:35:50
class Hoge { public int ソート前のインデックス; public int 値; }
こういうラッパーをかぶせてからソートすればいいんじゃね
422:デフォルトの名無しさん
08/02/17 21:09:07
>>419
一番高速なのは、quicksortのコードを自分でいじって実装することかな。
値をスワップするところで、添え字もスワップすればいい
423:419
08/02/17 21:09:52
>>420,421
返答ありがとうございます
hoge[0] = 3423
hoge[1] = 4123
hoge[2] = 4142
a[0]= 2
a[1]= 1
a[2]= 3
みたいにhogeにID、aに値を保存していて、それぞれ添え字で=を確認してたんです
(つまり添え字が0ならID;3423→2みたいにです)
あとaには同じ値がたくさんはいっているのでソート後に値で確認もできないんです。。。
もしかして他にいい保存方法あったりしますかね^^;
424:デフォルトの名無しさん
08/02/17 21:10:48
>>422
やっぱ自分で実装するのが一番早いですかね?。。
425:デフォルトの名無しさん
08/02/17 21:16:03
クラス使えよ
class IDAndValue { int id; int value; }
ソートはComparatorを自分で実装すればいいだけ
426:デフォルトの名無しさん
08/02/17 21:21:10
>>425
ありがとうございます
やってみます!
427:デフォルトの名無しさん
08/02/17 21:27:25
Comparableでもいいよ
428:デフォルトの名無しさん
08/02/17 22:31:34
ファイルを後ろから読み込むにはどうすればいいのでしょうか?
BufferedReaderのreadLineのように一行ずつ読み込めるものがあると良いのですが、、、
429:デフォルトの名無しさん
08/02/17 22:45:34
そんなに大きくないならListに全部読み込んで、後ろから取り出せば?
430:デフォルトの名無しさん
08/02/17 22:45:43
多分だけど、どうしてそれがしたいかを説明すると
よりハッピーになると思う
431:デフォルトの名無しさん
08/02/17 23:05:38
>>378
>>361のページに↓のようにいつ統計を採ったのかを書いてある
Millward Brown survey, conducted December 2007.
See Methodology Section for details on the Millward Brown study.
432:デフォルトの名無しさん
08/02/17 23:24:14
public ShortTimer t;
t.start();
これでタイマーが開始しましたが、再びここで
t.start();
すると実行時エラーになります。
そこで t が t.start(); されているかを知る方法を教えてください。
433:デフォルトの名無しさん
08/02/18 00:01:19
>>432
>>2 Good Luck!
434:デフォルトの名無しさん
08/02/18 01:07:55
428です。
後ろに行くほど新しい情報が書いてあるログファイルなので後ろから読み込めたらいいなと。
容量はそれほど大きくもないのですが、、、
435:デフォルトの名無しさん
08/02/18 02:22:54
>>434
それは tail コマンドと同じ機能っぽい印象を受けました。
そして、あまりに便利なコマンドだから、かっこいいことをしてるハズだ
と、そう思って検索してみました。すると…
勘違いしていました。tail.c
URLリンク(programamemo2.blogspot.com)
バッファサイズ決めて、(最初はファイル長を割って余った分だけ)ファイルから読み込んで
改行文字数を数えて、必要数たまったら、そのバイトから最後まで出力っぽい感じ。
ファイルが更新された時の処理も、そのブログ記事にあるとおりで、なんともはや…
436:デフォルトの名無しさん
08/02/18 02:36:16
んなもん tail の動き見てりゃ 1 秒ごとに監視してるだけくらい想像付くべ。
ファイルのケツから数kB〜数十kB ごとに読み込んで行数カウント、必要行数に
達したらそこから開始位置まで出力、達しなければその前のブロックを評価が定番。
437:デフォルトの名無しさん
08/02/18 08:34:15
class Test {
int sum(int[] date){
int r=0;
int i;
for(i=0; i<date.length; i++)
r += date[i];
return r;
}
}
public class sample34{
public static void main(String[] args) {
Test test =new Test();
int[] date1 = new int[]{1,2,3,4,5};
int result;
result=test.sum(date1);
System.out.println(result);
}
}
これで15が返ってくる理由教えてください。
私の考えはsum(int[] date)ここに{1,2,3,4,5}を入れるわけですよね?
でdate.lengthとなっているから、その個数5だと思うんですけど
すいません意味不明で・・・
438:デフォルトの名無しさん
08/02/18 08:54:32
配列のインデックスは0から始まる
439:デフォルトの名無しさん
08/02/18 09:21:12
>>437
配列型の変数 date の length は int型で、この場合の値は 5 です。よって
L5: i が 5 未満の場合、L6 へ進む。そうでなければL7へ進む。
L6: r と date[i] を加算し、r にその結果を入れる。(i に 1 加える。L5へ進む。)
L7: r を返す。
// 何をしてるかと言えば、配列の各要素の値を加算した値を返してるだけ。
よって、Test のインスタンスメソッド sum(int[]) に
date1 を入れて実行すると 15 が返される。
// 各要素の値、1 から 5 までを加算した値
後は手元の本などで for文の仕組みを調べ直してください。
蛇足。制御文 if, else, for, while, do-while の "{ }" を省略した場合、
直後の1文が制御対象になりますが、見易さや事故防止等の為、
省略しないことをお勧めします。
440:デフォルトの名無しさん
08/02/18 09:26:03
data.length
Σ data[i]
i=0
441:デフォルトの名無しさん
08/02/18 09:36:09
ありがとうございます。分かりました!!!
これからも勉強頑張っていきます!
442:デフォルトの名無しさん
08/02/18 13:40:38
TreeMapでデータをソートしたのですが
Entryで得たvalueとkeyをStringにキャストしてInteger.parseIntをつかってから
int型にしてint型変数に格納しようとするとkeyだけキャストできないというエラーが出てしまいます
原因がわかりませんー・・・
443:デフォルトの名無しさん
08/02/18 14:01:46
OSのタイムゾーン設定では日本時間なのに
JavaのデフォルトタイムゾーンがGMTになっています。
デフォルトのタイムゾーンってどこをいじれば変更できるのでしょうか?
環境はJava1.6.0_04 Windows 2003 です。
444:デフォルトの名無しさん
08/02/18 14:06:03
>>442
コードを見せてみれ
エラーメッセージも正確に
445:デフォルトの名無しさん
08/02/18 14:07:15
>>442
キャストできないエラーというのは、「Stringにキャストして」の部分なのでしょうか?
1.5以降ならジェネリクスをお勧めします。
原因としては TreeMap に格納する際に何型を使ったのか、が怪しいところです。
446:442
08/02/18 14:14:34
public class Sort {
public Sortdata sort(Difference dif){
int i = 0;
String change_sm = null;
String change_play = null;
Sortdata data = new Sortdata();
NumericComparator c = new NumericComparator();
TreeMap map = new TreeMap(c);
while(i < dif.number){
change_sm = Integer.toString(dif.sm[i]);
map.put(new Integer(dif.replay[i]), change_sm);
i++;
}
Set s = map.entrySet();
i = 0;
Iterator it=s.iterator();
while(it.hasNext()){
Map.Entry e = (Map.Entry) it.next();
change_sm = (String) e.getValue();
change_play =(String) e.getKey(); //getKeyだけキャストがおかしいというエラーがでる
data.sm[i] = Integer.parseInt(change_sm);
data.replay[i] = Integer.parseInt(change_play);
System.out.println(data.sm[i]+":"+data.replay[i]);
i++;
}
return data; }
class NumericComparator implements Comparator {
public int compare(Object o1, Object o2) {
int result=((Integer)o1).compareTo((Integer)o2);
if(result==0) result=1;
return result;
} } }
447:442
08/02/18 14:16:22
すいません初心者でコピペで作ったようなプログラムなのでどこを載せればいいのかわかりませんでしたTT
エラーは
Exception in thread "main" java.lang.ClassCastException: java.lang.Integer cannot be cast to java.lang.String
at Sort.sort(Sort.java:34)
行は書き込むときに編集してしまったので違うかもです
change_play =(String) e.getKey(); //getKeyだけキャストがおかしいというエラーがでる
とりあえず↑を指してます
448:デフォルトの名無しさん
08/02/18 14:21:41
そらだめだよ。
Integerで格納したんだから、Stringにはキャスト出来ない。
449:デフォルトの名無しさん
08/02/18 14:24:24
>>446
Mapにputするときはkeyの部分をInteger型で入れている。
Integer型なのにString型へキャストしようとするからエラーになる。
450:デフォルトの名無しさん
08/02/18 14:31:02
>>446
重ねてJ2SE1.5(5.0)以降ならジェネリクスをお勧めします。
ついでに autoboxing も機能するので更に見やすくなります。
> map.put(new Integer(dif.replay[i]), change_sm);
key が Integer, value が String。そりゃ key でキャストエラーになります。
以下蛇足。
・変数は使う直前で宣言すること。
・元が int型なら Integer だけにしておけば良いのに。
・初期化、比較、更新があるなら while ではなく for を使うように。
・ついでに初期化部で int i = 0; で宣言すること。(添え字の使いまわしは厳禁)
451:デフォルトの名無しさん
08/02/18 14:36:27
みなさんありがとうございます!
ジェネリスクも試してみようと思います><
452:デフォルトの名無しさん
08/02/18 14:37:10
>>443
set | find "TZ"
結果はカラ?
453:443
08/02/18 14:45:46
>>452
レスありがとうございます。
TZ=JST
とでます。
454:デフォルトの名無しさん
08/02/18 15:37:48
ネイティブインターフェイスの使い方を教えてください
455:デフォルトの名無しさん
08/02/18 15:42:34
>ネイティブインターフェイス
JNIのこと?
456:デフォルトの名無しさん
08/02/18 15:55:04
はい
457:デフォルトの名無しさん
08/02/18 15:59:29
>>454
これでも読んどけ
URLリンク(java.sun.com)
458:デフォルトの名無しさん
08/02/18 16:05:55
dllの作り方教えてください
459:デフォルトの名無しさん
08/02/18 16:10:42
それはJavaじゃないよ
460:デフォルトの名無しさん
08/02/18 16:11:22
わからない問題があったので教えてください
public class Test extends Thread{
private int i, j;
public synchronized void run(){
for(int count = 0; count < 2; count++){
i++; j++;
System.out.print("i=" + i + " : j=" + j + " ");
}
}
public static void main(String[] args){
new Test().start();
new Test().start();
}
}
A. i=1:j=1 i=1:j=1 i=2:j=2 i=2:j=2
B. i=1:j=1 i=2:j=2 i=1:j=1 i=2:j=2
C. iとjの値は出力されるが表示順は一意ではない
Testクラスは二つでき、runメソッドはそれぞれで動くため
AにもBにもなりえる(実際は何回やってもBになるが)と思ってCにしたんですけど答えはBでした
Aにはならないんでしょうか?
解説には「run()メソッドをsynchronized指定しているためrun()メソッド実行中は
他に制御が移ることなく処理されます」とあります
461:デフォルトの名無しさん
08/02/18 16:20:05
答はCであってます。
printの後ろに、
try { Thread.sleep(1000); } catch (InterruptedException e) {}
を追加して実行してみてください。
462:デフォルトの名無しさん
08/02/18 16:29:21
たぶんスレッドでの(i=1:j=1 i=2:j=2)の組の出力は保証されるということなのだろうけど、
どっちのスレッドかわからんよな、これ。
Aは間違い。でも、結果的に出力は必ずBになるなw
463:デフォルトの名無しさん
08/02/18 16:31:40
えー、保証すらされないだろ
464:デフォルトの名無しさん
08/02/18 16:33:05
>>461-462
ありがとうございます
安心しました
465:デフォルトの名無しさん
08/02/18 16:51:26
フルパスからファイル名を取り出す関数とかあれば
教えてください。
WinAPIのGetFullPathName()のようなやつがあれば・・・
466:デフォルトの名無しさん
08/02/18 16:53:02
File#getName()
467:デフォルトの名無しさん
08/02/18 16:54:52
>>466
快速的回答謝謝。
468:デフォルトの名無しさん
08/02/18 16:58:18
wikiのリンク切れてる・・・
だれか原因わかる人います?
469:デフォルトの名無しさん
08/02/18 17:05:24
リンク切れてるっつーか、ホスティングしてる wikiroom が
最近落ちまくり & ほったらかし & メール送っても無応答状態らしい。
470:デフォルトの名無しさん
08/02/18 17:07:32
>>469レスサンクス!
まじか…javacの設定方法探そうと思ったのに…
471:デフォルトの名無しさん
08/02/18 18:15:45
lass Test {
int m;
int n;
Test(int i,int j) {
m=i;
n=j;
}
Test(Test testC) {
m= testC.m;
n= testC.n;
}
int sum(int i,int j){
return m + n + i + j;
}
}
public class sample38{
public static void main(String[] args);
Test test = new Test(10, 5);
test.m++;
test.n++;
Test test2 = new Test(test);
System.out.println(test2.sum(2, 3));
}
}
このプログラムの中の
Test(Test testC) {
m= testC.m;
n= testC.n;
がある意味がよくわかりません。テキストを読んでいてもよく分からないので教えてください。
472:デフォルトの名無しさん
08/02/18 18:20:34
いわゆるコピーコンストラクタってやつ
473:デフォルトの名無しさん
08/02/18 18:25:06
コンストラクタのオーバーロードじゃね
474:デフォルトの名無しさん
08/02/18 18:27:44
Java 的には clone() だな。
475:デフォルトの名無しさん
08/02/18 18:33:51
JNIはどうすんの
476:デフォルトの名無しさん
08/02/18 18:35:42
>>471です。処理はどんな手順で進んでいくのですか?
477:デフォルトの名無しさん
08/02/18 18:58:35
どこまでわかるのか書け
478:デフォルトの名無しさん
08/02/18 19:08:06
オブジェクトはフィールド、メソッド、クラス、を持つとよく聞きますが、実際にオブジェクトを生成する際、フィールド以外の物も新たに作るのでしょうか?
それとも状態を持つのはフィールドだけなのでメモリにはフィールドのみを生成するのでしょうか?
479:デフォルトの名無しさん
08/02/18 19:13:44
フィールドのみと考えていい
480:デフォルトの名無しさん
08/02/18 19:13:48
クラスとメソッドはほぼ一体。最初にクラスを参照したときにメモリ上に現れ static 宣言
されたフィールドとメソッドを持つ。非 static フィールドはインスタンスごとに作成される。
481:デフォルトの名無しさん
08/02/18 19:16:33
>>479,>>480
素早く分かりやすい回答ありがとうございました。
ずっと気になっていたことだったので本当にすっきりしました。
482:デフォルトの名無しさん
08/02/18 19:23:08
>>477
Test test = new Test(10,5);
これを上の
Test(int i,int j) {
m=i;
n=j;
に入れて、つぎにmとnに1を足すまでは分かる。
Test(Test testC) {
m= testC.m;
n= testC.n;
これどんな処理してるん?
483:デフォルトの名無しさん
08/02/18 19:28:09
testCに渡された既存のTestオブジェクトの中身を
新しく作ろうとしてるTestオブジェクトにコピーしてる
484:デフォルトの名無しさん
08/02/18 19:35:35
Javaのコントロールパネルの出し方教えてくれ
どこにもなくて困ってる
485:デフォルトの名無しさん
08/02/18 19:36:35
test
486:デフォルトの名無しさん
08/02/18 19:37:48
どういうときにコピーコンストラクタは使うの?
487:デフォルトの名無しさん
08/02/18 20:09:37
オブジェクトをコピーしたいとき
488:デフォルトの名無しさん
08/02/18 20:14:13
必要なクラスやライブラリが増えるとクラスパスの設定が面倒になりますが、
自分が書いたソースのクラスファイルを格納してるフォルダに全て突っ込んじゃえばいいと思うんですが、
この考え方は間違ってますか?
例えばDBのJDBCドライバを使うにはCLASSPASSに追加するかtomcatのcommon/binに入れたりするけど
前者の場合、無関係なプログラムにも影響を及ぼすし、後者の場合はコンテナを変えたらまた作業が増える。
自分が作ってるサーブレットのクラスファイルを保存してる場所にJDBCドライバを入れちゃえば全て解決な気がする。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4261日前に更新/275 KB
担当:undef