★★Java質問・相談スレッド157★★at TECH
★★Java質問・相談スレッド157★★ - 暇つぶし2ch178:デフォルトの名無しさん
12/09/20 22:17:37.28
>>117

179:デフォルトの名無しさん
12/09/20 22:24:03.36
>>172
日本語がわからないところあるが、バイナリでもいろいろなcpuに対応が当たり前になるってこと?
GNUのソフトなんかはいろいろなアーキテクチャでコンパイルできるし、Unix系ではネットワークマウントで共有するの普通だし、FHSではlibとか/usr/shareとか複数アーキテクチャへの対応を考えているのでは。
問題なのはwindowsのドライブレターとか、ハードウェアアクセスの利用みたいな互換性のなさなんじゃないの。

180:デフォルトの名無しさん
12/09/20 22:42:35.00
javafx 2.2がlinux(ubuntu12.04)でもちゃんと動けばjava/oracleの言い分も少しは信用したんだけど、こんなコアダンプを毎回見てればoracleが何を言っても信用できるはずない。
windowsではほぼ問題なく動くだろうけど、linuxではjavafx開発はバグだらけで出来ないしopengl(3d)も動かないし、所詮oracleの技術力と目指しているものはこの程度でしょ。
windowsで開発するならjavaを一切触わらずvs,msdnライセンスを買って初めからc#,html5(js)だけでやるわ。

# JRE version: 7.0_06-b24
# Java VM: Java HotSpot(TM) 64-Bit Server VM (23.2-b09 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C [libX11.so.6+0x33c58] XQueryExtension+0x28

181:デフォルトの名無しさん
12/09/20 23:22:59.65
>>123

182:デフォルトの名無しさん
12/09/21 01:47:32.43
なんでこんなに荒らされてるの?

183:デフォルトの名無しさん
12/09/21 03:17:18.47
>>182

184:デフォルトの名無しさん
12/09/21 03:23:22.54
LinuxのGUI環境って全然知らないんだけど、Swingはちゃんと動くの?

185:デフォルトの名無しさん
12/09/21 03:45:03.81
netbeansは一応ちゃんと動くみたいですよ。
ただしlinux(gnome)だとほとんどのjavaプログラムの日本語入力がおかしくなることがあるようなのでwindowsだけで考えた方がいいんじゃないですか。

186:デフォルトの名無しさん
12/09/21 16:28:43.18
やられた!

ArrayList<Integer> a = new ArrayList<>();
Integer x = 1000;
int y = 2000;
a.add(x);
a.add(y);
a.remove(x);
a.remove(y);

autoboxing 死ね!

187:デフォルトの名無しさん
12/09/21 16:56:35.18
autoboxingの仕様作ったやつちょうあほ

188:デフォルトの名無しさん
12/09/21 17:45:19.07
HashSet<Integer> s = new HashSet<>();
Integer x = 1000;
int y = 2000;
s.add(x);
s.add(y);
s.remove(x);
s.remove(y);

これはOKなんだよな~
紛らわしい!

189:デフォルトの名無しさん
12/09/21 17:50:16.00
そりゃSetにはindexでremoveするメソッドとか無いし。

190:デフォルトの名無しさん
12/09/21 20:24:01.75
死ねとか紛らわしいとかいう前にオートボクシング・アンボクシングとかコレクションについて勉強したほうがいいと思うよ

191:デフォルトの名無しさん
12/09/21 23:37:21.42
仕様がおかしいという指摘に対し
仕様通りと返す奴はアスペ

192:デフォルトの名無しさん
12/09/22 00:08:59.25
>>191
それはない

193:デフォルトの名無しさん
12/09/22 00:12:23.07
後から追加された仕様だからなぁ。
最初からオートボクシングがあったら、
listのインターフェイスも考えようがあったんだろうけど。

listにintを入れた事がなかったから、そのハマりは経験したことがなかったな。
それより、内容は同じだけどオブジェクトの違うLong同士を==で比較してハマった方が辛かったw

194:デフォルトの名無しさん
12/09/22 01:21:46.62
>>186
a.remove(y) のとこだよね?
(これは2000番目の要素を削除するという動作になる)
「remove」という同じメソッド名なのに引数によってまったく異なった動作になる。
StringBuilderクラスでは delete とか deleteCharAt ってメソッド名になってるから
Listも a.delete(y) とか a.deleteAt(y) みたいになってれば
混乱せずに済んだだろうね。
でもしかたないよ。今さらメソッド名を変更してもらえるとは思えない。
慣れるしかないな。

195:デフォルトの名無しさん
12/09/22 02:50:37.05
あほ言語の末路

196:デフォルトの名無しさん
12/09/22 03:18:54.08
Javaは1.4からいじり始めたんだが、Java5以降から入ったやつにとっては
オートボクシングは意味不明だと思うわ……。

ジェネリクス、for-each、タイプセーフenumとかクソ便利なのに、オートボクシングは蛇足だよ…

197:デフォルトの名無しさん
12/09/22 03:50:58.56
必要ならラッパークラスのメソッドを使えばいいし、
オートボクシングは必ずしも使わないと困るような場面はぱっとは思いつかないなあ
Eclipseにも、オートボクシングに対してワーニングやエラーを出すようなオプションがあるぽいし


198:デフォルトの名無しさん
12/09/22 04:18:45.59
馬鹿には無理

199:デフォルトの名無しさん
12/09/22 06:59:49.73
オートボクシングじゃなくて
Javaの==がウンコだからじゃね?

200:デフォルトの名無しさん
12/09/22 07:22:09.65
while(true)
 if(!Java.equals("うんこ"))
  System.exit(1);

201:デフォルトの名無しさん
12/09/22 09:59:11.32
>>185
以前、Javaで日本語入力が効かなくなったことはあるけど今は大丈夫
この発言もubuntu上のV2Cで書いてる
Debianでも問題なし
V2CはすべてJavaで書かれた2chブラウザ


202:デフォルトの名無しさん
12/09/22 10:36:52.24
V2CはSwingでここまでできるという見本みたいなものという感じ
100%Javaで書かれた高機能な2chブラウザ

203:デフォルトの名無しさん
12/09/22 15:09:52.90
フォントの問題はあるけど

内緒

204:デフォルトの名無しさん
12/09/22 15:56:14.92
dialogを閉じるときにescで閉じるとよく発生して、それ以降キー入力を受付なくなるのでしょ。
たしか、java(swing)のバグじゃなくて、gnomeのimeのバグで、gnomeがいつまでも直さなかったからjava swingがいつまでもとばっちり受けてたってやつ。

205:デフォルトの名無しさん
12/09/22 16:03:22.81
とばっちりとか言ってるけど、文句言う前に上流にパッチ投げるくらいはしたのかしら?

206:デフォルトの名無しさん
12/09/22 16:21:00.17
>>203
MS Pゴシックとピッチが同じフォントならMonapoフォントとか他にもいろいろあるよ
Ubuntuならパッケージ化されてるからインストールも簡単

207:デフォルトの名無しさん
12/09/22 16:23:52.95
ていうか、osxに忙しいから、linuxはガン無視でしょ
次のjavaone2012は、javafxはipod,iphoneでも動きますよーが目玉だろうしw(多分)
windows上でapple製品を開発できるけどandroid,windowsphoneは動かないって、それってマヌケ

208:デフォルトの名無しさん
12/09/22 16:25:22.71
即レスかよ
このスレにはアンチJava厨がはりついてるのか

209:デフォルトの名無しさん
12/09/22 16:29:10.22
LinuxはOpenJDKがあるからそれでいいのでは?
Oracle純正の最新JVMを必ず使わなければいけないわけじゃないし
オープンソースに否定的なユーザはそもそもLinuxを使わないし

210:デフォルトの名無しさん
12/09/22 16:37:37.39
ubuntu unityでnetbeansを起動するとgtk theme (system default)になるけど、かなりいい加減な作りっての知らないでしょ。
menu popuoのウインドウ境界・淵のところにunityだとぼかしのエフェクトがあるけど、heavy/light weight windowサポートしたといっても、netbeans7.2ではgtk(system)のuiも再現できてない。
xrenderはv2cでは効果あるのに、netbeansでは効いてないっぽいし、linuxで開発するなんて夢物語だし、openjdkのlinuxサポートとかもう終わってる。

211:デフォルトの名無しさん
12/09/22 16:48:21.06
>>117

212:デフォルトの名無しさん
12/09/22 16:55:48.86
最近、このスレ荒らしがひどな
本当に終わってるなら一日中はりついて荒らす必要なんてないのに

213:デフォルトの名無しさん
12/09/22 17:01:41.47
>>206
それがねー、以外と難しいのよ

214:デフォルトの名無しさん
12/09/22 17:03:52.93
いいや
荒らしではなく現在のJava Platformの本当の姿を書いてくれてるんだよ
現在のJava SEはWindows専用のVMアプリに過ぎずOSX向けはJava7からやっと開発が始まったという程度のものでしかない
ORACLEのJAVAはSUNのころのJavaとはまったく違う

215:デフォルトの名無しさん
12/09/22 17:06:59.05
>>121

216: ◆QZaw55cn4c
12/09/22 17:50:12.63
windows8に凍死するのもどうですかね‥‥‥

217:デフォルトの名無しさん
12/09/22 17:51:59.44
>>213
ubuntuなら端末を開いて
sudo apt-get install fonts-monapo
この一行を実行するだけ
V2Cはフォントメニューを開くときにフォントを勝手に検索してくれるから
V2Cの[設定]メニューの[フォント]でmonapoフォントを選択するだけ

218:デフォルトの名無しさん
12/09/22 18:20:42.67
ubuntu unityだとデスクトップ・ショートカット・ランチャが簡単には作れないから、旧式のv2c.shを作って実行とかでやってる
そこに-Dawt.AA=とか-Dswing.defaultlaf=とか
java7になってもlinux(gnome)ではフォントもあまりさポートしてから各国スクリプト・カテゴリによるフォントグリフの国際化対応はまだおかしいかもね
linux gonmeとかlinux ide(eclipse,netbeans)とかの雑魚環境を体験してみると、windowsとvsがいかに値段が安くいかに高品質なのかって思い知るよ
アンチなわけではないけど、これが現在のoracle/javaの現実で、java seはwindows専用アプリと考えた方が正しい

219:デフォルトの名無しさん
12/09/22 18:22:21.47
>>9

220:デフォルトの名無しさん
12/09/22 18:56:06.90
apiのソースコード読んだら意味不明なんですが、
プロは読めるものなんですか?
英語もわからないし。

221:デフォルトの名無しさん
12/09/22 19:07:51.58
はい

222:デフォルトの名無しさん
12/09/22 19:23:23.85
すごいですね。
僕には無理だ。他の道を探そう。

223:デフォルトの名無しさん
12/09/22 19:36:42.75
>>218
DebianでもMonapoフォントはパッケージになっててスーパーユーザになって
apt-get install ttf-monapo
これで終わり
あとはV2Cを起動して[設定]メニューの[フォント]でMonapoフォントを指定するだけ
この発言はDebianから書いてます
正直、何が難しいのかわからない

224:デフォルトの名無しさん
12/09/22 19:40:07.00
誤解のないように書くけど
V2Cはフォントをいちいち指定しないと日本語が表示されないわけじゃなくて
アスキーアートの表示が崩れるからMonapoフォンを入れてV2Cで指定してるだけ

225:デフォルトの名無しさん
12/09/22 22:37:15.50
>>217
そんな話はしていない

java/swingのフォント設定

226:デフォルトの名無しさん
12/09/23 00:57:36.81
v2cは追いかけてないから確かじゃないけど、確かスレのブラウズのコンポーネントは、jtextpaneだと遅いからcanvas+graphicsで自前で開発したのでやってるっんじゃなかったか?
自前で用意するようなコンポーネント開発までやって、twitterクライアントもやるほど気合はいってるなら、netbeans platform rcp開発(特にplugin module)を考えてもいいんじゃないかと思う。

227:デフォルトの名無しさん
12/09/23 03:21:26.00
>>225
そんなの簡単だぞ
String fontName1[]= GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
これでフォントの一覧を取得できる
あとは
Font font1 = new Font(fontName1[i], Font.PLAIN, 16);
このようにフォントを作成してやるだけ


228:デフォルトの名無しさん
12/09/23 03:25:12.81
graphicsで自前なんだし難しいてのはfont mericsのことじゃないの?

229:デフォルトの名無しさん
12/09/23 07:08:11.37
>>227
だからそんな話をしてないって

以上

230:デフォルトの名無しさん
12/09/23 11:01:26.11
Javaはマイクロソフトのステマの攻撃ターゲットに設定されました

231:デフォルトの名無しさん
12/09/23 15:38:19.47
>>143

232:デフォルトの名無しさん
12/09/23 17:30:34.41
>>228
あぁ、それ俺もよくわからなかった

233:デフォルトの名無しさん
12/09/24 00:04:34.89
すみません、ネットで調べましたが、ヒント見つからず、
どうしても分かりませんでした。

質問は、以下のソースコードで、
ExClass35Array = subExClass35Arrayで、
subExClass35Arrayの参照情報をExClass35Arrayへ代入しているのですが、
System.out.println(ExClass35Array[0].a)がコンパイルエラーとなり、
期待している結果「4」と表示されません。何がいけないのでしょうか?

class ExClass35{
public static void main(String[]args){
ExClass35[] ExClass35Array;
subExClass35[] subExClass35Array = new subExClass35[5];
for( int i = 0 ; i < subExClass35Array.length ; i++){
subExClass35Array[i] = new subExClass35();
}
subExClass35Array[0].a = 4;
System.out.println(subExClass35Array[0].a);
ExClass35Array = subExClass35Array;
System.out.println(ExClass35Array[0].a);
}
}
class subExClass35 extends ExClass35{
int a ;
}

234:デフォルトの名無しさん
12/09/24 00:07:01.60
int aにpublic ってつければコンパイルは通るけど、
何かもっとちゃんとした資料で勉強した方がいい

235:デフォルトの名無しさん
12/09/24 00:35:50.96
234さん
ご回答有難うございます。

下記の部分では、問題なく「4」と表示されます。
subExClass35Array[0].a = 4;
System.out.println(subExClass35Array[0].a);

参照情報を代入(ExClass35Array = subExClass35Array)しただけなのに、
int a ; に publicをつけなければ、
System.out.println(ExClass35Array[0].a); で「4」と表示されないのでしょうか?

>>int aにpublic ってつければコンパイルは通るけど、
実際につけてみましたが、やはりコンパイルエラーになりました・・・。

すみません、混乱しております。

236:デフォルトの名無しさん
12/09/24 00:45:19.89
234だけど、publicをつければいいというのは今回とは別の話だった

ExClass35[]という型のExClass35Arrayという変数に
subExClass35[]という型のsubExClass35Arrayという変数を
ExClass35Array = subExClass35Array;
で代入しようとしているのがおかしい.
継承された型ならスーパークラスの型の変数に代入できるけど、
配列はできないよ

つかクラス名は大文字で始める、変数は小文字で始めるっていうお約束を
ことごとく守らないからすごく見づらい

237:デフォルトの名無しさん
12/09/24 00:56:40.61
234さん

早速のレス有難うございます。

>ExClass35Array = subExClass35Array;
>で代入しようとしているのがおかしい.

すみません、何をしようとしているのか、背景の説明が足りておりませんでした。

URLリンク(www.javaroad.jp)
⇒こちらのサイトの「【例3】変換元が配列型、変換先が配列型の例です。SuperClassクラスはSubClassクラスのスーパークラスであるとします。 」でソースコードがあります。
ここで配列の型変換が説明されており、それを元に、先ほどお伝えしたソースコードを私が作りました。

本当に代入による型変換が行われているのか?というのを確認するために、
ExClass35Array = subExClass35Arrayということを行い、
System.out.println(subExClass35Array[0].a); で「4」が表示されるか確認したい
というのが目的になります。

>継承された型ならスーパークラスの型の変数に代入できるけど、
>配列はできないよ
すみません、配列の型は代入できないのでしょうか?
サイトの情報が間違っているのでしょうか?

>つかクラス名は大文字で始める、変数は小文字で始めるっていうお約束を
>ことごとく守らないからすごく見づらい
この点は今のうちから守っていきます。すみません。。


238:デフォルトの名無しさん
12/09/24 00:58:52.44
荒らすな

239:デフォルトの名無しさん
12/09/24 01:05:32.79
ごめんなさい、俺があほでした

int aはsubExClass35というExClass35のサブクラスで初めて定義されているメンバなので、
ExClass35にアップキャストした後だと、 ExClass35というクラスにはaというメンバは存在しないから、
ExClass35の変数のaにアクセスしようとしても、そんなメンバは存在しないとエラーが起こる.
これが実際で、他の俺のレスは全部俺の勘違いだった… 配列でも普通にアップキャストできたごめん

240:デフォルトの名無しさん
12/09/24 01:11:23.82
荒らすな

241:デフォルトの名無しさん
12/09/24 01:34:32.38
>>233
まずはエラーメッセージをコピペする方法から学ぶんだ。

242:デフォルトの名無しさん
12/09/24 10:49:28.42
239さん

ご回答有難うございます。
頂いたアドバイスで理解することができました。
サブクラスの配列の変数からスーパークラスの配列の変数へ代入した場合、
スーパークラスが参照できる領域は、サブクラスに継承したメンバ変数・メソッドだけという制約がありました。
よって、
class ExClass35{int a; ・・・・以降省略}
class subExClass35 extends ExClass35{ int aは削除 }
とすることで、
System.out.println(ExClass35Array[0].a);
で、期待した「4」を表示させることができました。

大変助かりました。感謝です^^

241さん

そうですね、最初からエラーメッセージ書くべきでした。
事後ですが、以下のメッセージが出ていました。
=======
Exception in thread "main" java.lang.Error: コンパイル問題が未解決です:
a は解決できないか、フィールドではありません

at クラス.ExClass35.main(ExClass35.java:24)
=======

240さん
荒らしてしまって、すみません。。


243:デフォルトの名無しさん
12/09/24 10:54:41.86
>>238 >>240は常駐してる荒らしだから気にしなくていい

244:デフォルトの名無しさん
12/09/24 11:28:11.74
243さん
了解しました。有難うございます。

245:デフォルトの名無しさん
12/09/24 14:04:11.94
荒らすな

246:デフォルトの名無しさん
12/09/24 14:27:18.48
なおしときますね

247:デフォルトの名無しさん
12/09/24 15:55:46.11
素朴な質問ですが、Javaはなぜ大文字と小文字を混ぜているんでしょうかね
例:System.out.printlnというように
C言語みたいに小文字だけにすればいいようなかんじですが

248:デフォルトの名無しさん
12/09/24 16:06:36.01
なんとか記法

249:デフォルトの名無しさん
12/09/24 16:28:26.74
クラス名か変数/メソッド名か一目で分かるようにするため

250:デフォルトの名無しさん
12/09/24 16:30:48.01
>>249
どうもありがとうございました
クラス名・・・大文字が混ざっている小文字
変数/メソッド・・・小文字だけ
ということでよろしいですかね


251:デフォルトの名無しさん
12/09/24 16:36:33.11
荒らすな

252:デフォルトの名無しさん
12/09/24 16:44:15.65
>>250
クラス/インターフェイス・・・パスカルケース(単語先頭が大文字) 例:PascalCase
変数/メソッド・・・キャメルケース(先頭を除いて単語先頭が大文字) 例:camelCase
定数・・・大文字スネークケース(全て大文字アンダーバー区切り)例:SNAKE_CASE

253:デフォルトの名無しさん
12/09/24 16:53:28.87
X11Util.Display: Shutdown (close open / pending Displays: false, open (no close attempt): 1/1, pending (not closed, marked uncloseable): 1)
X11Util: Open X11 Display Connections: 1
X11Util: Open[0]: NamedX11Display[:0.0, 0x7f1c6410c6b0, refCount 1, unCloseable true]
X11Util: Pending X11 Display Connections: 1
X11Util: Pending[0]: NamedX11Display[:0.0, 0x7f1c5c001ec0, refCount 0, unCloseable true]
#
# A fatal error has been detected by the Java Runtime Environment:
#
# SIGSEGV (0xb) at pc=0x00007f1cbd295c58, pid=8362, tid=139761430722304
#
# JRE version: 6.0_33-b03
# Java VM: Java HotSpot(TM) 64-Bit Server VM (20.8-b03 mixed mode linux-amd64 compressed oops)
# Problematic frame:
# C [libX11.so.6+0x33c58] XQueryExtension+0x28
#
# An error report file with more information is saved as:
# /processing-2.0b3/hs_err_pid8362.log

254:デフォルトの名無しさん
12/09/24 17:15:54.90
なんだか知らんが

Linux板へ行け

255:デフォルトの名無しさん
12/09/24 17:21:47.70
馬鹿には無理

256:デフォルトの名無しさん
12/09/24 19:13:34.49
252さん
書き方の情報有難うございます。
今のうちから、その書き方を心がけておきたいと思います。

257:デフォルトの名無しさん
12/09/24 22:18:29.86
うんこちんちん

258:デフォルトの名無しさん
12/09/24 22:30:50.99
今日、アップキャストとダウンキャストを勉強していました。
ソースを見てもイメージできないと、なかなか理解が厳しいですね。


259:デフォルトの名無しさん
12/09/24 22:36:01.13
>>258
クラス図でイメージしてるかな。

260:デフォルトの名無しさん
12/09/24 23:03:10.31
javaの印刷APIで印刷させようと思っているのですが、wordやexcelで印刷要求した時に使われるトレイ以外から印刷しようとしているらしく
用紙がないとのエラーになってしまいます。

トレイや向きを指定するにはどうすればよろしいでしょうか?

261:デフォルトの名無しさん
12/09/24 23:05:48.99
javaってタブレットの手書きに対応したAPIてありますか?

262:デフォルトの名無しさん
12/09/24 23:15:20.77
タブレットの手書きが出来るjavaアプリって何かありますか?

263:デフォルトの名無しさん
12/09/25 01:31:06.26
こんなところで質問はもうやめるんだ
わかるだろ

264:デフォルトの名無しさん
12/09/25 01:43:05.79
うんち

265:デフォルトの名無しさん
12/09/25 03:08:42.42
jtabletとかjpenとか

266:デフォルトの名無しさん
12/09/25 15:32:36.87
今読んでるソースにクラス内でinterface宣言があるんですが、
これってどういう意味があるんでしょうか。


267:デフォルトの名無しさん
12/09/25 16:00:10.43
interface

268:デフォルトの名無しさん
12/09/25 16:05:19.39
レストン。
たとえばクラス内でインタフェース宣言したら
どこで継承すればいいのかな??さっぱりです


269:デフォルトの名無しさん
12/09/25 16:17:04.06
その定義が見える範囲(スコープ)で継承すればいいんじゃないの
「public class ***」の中で「public static interface ***」と定義されてるなら
どこからでも見えると思っていい
あと、interfaceの場合は継承(extends)でなく実装(implements)と呼ぶ

270:デフォルトの名無しさん
12/09/25 16:26:03.41
インターフェースにも継承あるだろ

271:デフォルトの名無しさん
12/09/25 16:26:34.52
ちゃんと勉強してから答えろな

272:デフォルトの名無しさん
12/09/25 16:28:00.52
アスペ?

273:デフォルトの名無しさん
12/09/25 16:29:54.94
うんち


最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch