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

このエントリーをはてなブックマークに追加
924ソース01:2005/04/07(木) 14:29:47
//import java.awt.*;
//import javax.swing.*;

import javax.swing.*;
import javax.swing.event.*;

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

public class sample extends JApplet //implements ChangeListener
{

JSlider Rslider;
JSlider Gslider;
JSlider Bslider;

int red = 255;
int green = 255;
int blue = 255;

925ソース02:2005/04/07(木) 14:31:03
public void init() {
/*JSlider slider = new JSlider();
slider.setPaintLabels(true);
slider.setPaintTicks(true);
slider.setMajorTickSpacing(10);
slider.setMinorTickSpacing(5);

getContentPane().add(slider , BorderLayout.NORTH);*/


Rslider = new JSlider(JSlider.HORIZONTAL, 0, 255, 255);
Gslider = new JSlider(JSlider.HORIZONTAL, 0, 255, 255);
Bslider = new JSlider(JSlider.HORIZONTAL, 0, 255, 255);

Rslider.setPaintTicks(true);
Gslider.setPaintTicks(true);
Bslider.setPaintTicks(true);
926ソース03:2005/04/07(木) 14:31:25
Rslider.setMajorTickSpacing(16);
Gslider.setMajorTickSpacing(16);
Bslider.setMajorTickSpacing(16);

Rslider.setMinorTickSpacing(4);
Gslider.setMinorTickSpacing(4);
Bslider.setMinorTickSpacing(4);

//Rslider.addChangeListener(this);
//Gslider.addChangeListener(this);
//Bslider.addChangeListener(this);

getContentPane().setLayout(new FlowLayout());

getContentPane().add(Rslider);
getContentPane().add(Gslider);
getContentPane().add(Bslider);

}
927ソース04:2005/04/07(木) 14:31:44
/*public void paint(Graphics g)
{
//Color clr = new Color(red, green, blue);
//g.setColor(clr);
//g.fillRect(150, 300, 100, 50);
}*/
928ソース05:2005/04/07(木) 14:32:55
/*public void stateChanged(ChangeEvent ce)
{
if(ce.getSource() == Rslider)
{
red = Rslider.getValue();
repaint();
}

if(ce.getSource() == Gslider)
{
green = Gslider.getValue();
repaint();
}

if(ce.getSource() == Bslider)
{
blue = Bslider.getValue();
repaint();
}
}*/
}
929デフォルトの名無しさん:2005/04/07(木) 14:35:16
>>923
Javaのバージョンが古いとか?
java -versionで結果を教えて
930デフォルトの名無しさん:2005/04/07(木) 14:36:50
よろしくお願いします
931デフォルトの名無しさん:2005/04/07(木) 14:37:51
>>923
やってみた。
> C:\test>javac sample.java
> sample.java:11: sample は abstract でなく、javax.swing.event.ChangeListener 内の
> abstract メソッド stateChanged(javax.swing.event.ChangeEvent) をオーバーライド
> しません。
> public class sample extends JApplet implements ChangeListener
> ^
> エラー 1 個

だって。
932デフォルトの名無しさん:2005/04/07(木) 14:39:20
>>931
stateChangedもコメントにされてるぞ
933デフォルトの名無しさん:2005/04/07(木) 14:40:42
>>932
いや、>>918 が言うように
> sample.java:11: シンボルを解決できません。
が出ない事が分ったので、それでOK。
934デフォルトの名無しさん:2005/04/07(木) 14:46:00
コメント全部外せば普通にコンパイル通るからなぁ

import javax.swing.event.ChangeListener; 入れるのは意味無いだろうし…
後はバージョンくらいしか思いつかないや
API からそれだけが無い状態なんてのはありえるのか?
935デフォルトの名無しさん:2005/04/07(木) 14:49:09
>>934
1.2 から javax.swing.event.ChangeListener あるし。

J2ME? って事はないよなぁ……
936デフォルトの名無しさん:2005/04/07(木) 14:55:48
>>930
とりあえずOSとJavaのバージョンだけでも教えてくれ
937デフォルトの名無しさん:2005/04/07(木) 15:04:09
狂ったトロイにピンポイントで消されたとか。
938デフォルトの名無しさん:2005/04/07(木) 15:40:40
>>936
Windows2000ProSp4 JDK1.2.4-08です
939デフォルトの名無しさん:2005/04/07(木) 15:47:16
まちがえた
java version "1.4.2_08"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_08-b03)
Java HotSpot(TM) Client VM (build 1.4.2_08-b03, mixed mode)
940デフォルトの名無しさん:2005/04/07(木) 15:51:01
コンパイル通ってもスライダが表示されないのです。
941デフォルトの名無しさん:2005/04/07(木) 15:57:49
問題が変わってるがな

先の質問「コンパイルできない」は解決したんだな?
942デフォルトの名無しさん:2005/04/07(木) 16:16:45
はい、できました。
>>934さんのようにコメントはずしましてやりました。
943デフォルトの名無しさん:2005/04/07(木) 16:24:16
すいません。
sunのSDKとDOS窓だったんで遅れてしまいました。
944デフォルトの名無しさん:2005/04/07(木) 16:51:36
新質問

先のプログラムでスライダが実行時に表示できません。マウスでクリックすると出ます。

よろしくお願いします。
945デフォルトの名無しさん:2005/04/07(木) 16:56:49
>>944
paintメソッド内で↓を呼び出す
super.paint(g);

もしくはpaintメソッドをオーバーライドしない
946デフォルトの名無しさん:2005/04/07(木) 16:57:53
新たな問題

値の取得もできません。
947デフォルトの名無しさん:2005/04/07(木) 16:59:38
>>945
ありがとうございます。
948デフォルトの名無しさん:2005/04/07(木) 17:04:15
ちょっとちらつきますけど、値の取得と描画できました。
みなさん、ありがとうございます。
949デフォルトの名無しさん:2005/04/07(木) 17:06:09
ところで>>954さんの言うオーバーライドしないってのが気になるのですが、どうやるのですか?
950デフォルトの名無しさん:2005/04/07(木) 17:22:33
新たな問題

上記ソースのコメントをはずし、super.paint();を追加すると、下部に四角く色が出ますが、スライダを止めると、
色も出なくなります。
951デフォルトの名無しさん:2005/04/07(木) 17:30:47
何でもかんでもここで聞けばいいってわけじゃないぞ?
952デフォルトの名無しさん:2005/04/07(木) 17:44:32
アプレットを一度も触ったことないので勉強ついでに 950 を再現してみた

描画順番がおかしくなってないかい?
多分 super.paint() ではアプレット全体の再描画が行われてるっぽい
色箱の描画 → super.paint() だと、折角書いた物を上書きすることになる

というかこの状態、ちょっとどころのちらつきじゃ無いぞ
現象みて何が起こってるのか考えながら進めてみようよ
953デフォルトの名無しさん:2005/04/07(木) 17:44:44
すんませーん。
954デフォルトの名無しさん:2005/04/07(木) 17:45:24
>>951
955デフォルトの名無しさん:2005/04/07(木) 17:46:07
>>952
はい、わかりました。
956デフォルトの名無しさん:2005/04/07(木) 17:48:18
>>952
できました。
super.paint(g);をpaint(略)の一番上につけたらできました。
ありがとうございます。
957デフォルトの名無しさん:2005/04/07(木) 17:50:39
若干のちらつきは残りますねえ。
これからの課題にします。
958デフォルトの名無しさん:2005/04/07(木) 18:02:28
あの、あるオブジェクトを普通に読み書きしてる時に、特に排他処理を行う事なく
そのオブジェクトをwriteObjectとかでファイルとかに書き込みした場合、書き込まれた
データは不正な状態になったりするんでしょうか?。書き込みした時点に近い範囲でのスナップショットであれば
正常なデータが書き込まれている限り、自分としては別に問題はないのですが。
どなたか教えて下さい。orz
959デフォルトの名無しさん:2005/04/07(木) 18:09:54
>>958
そのオブジェクトが他で使用されてるか、とかによる。
960958:2005/04/07(木) 18:21:24
>>959
といいますと?。他スレッドでとかいう事でしょうか?
961デフォルトの名無しさん:2005/04/07(木) 23:11:25
ちょっとスレ違いかもしれませんが・・・質問させてください。
LinuxでJAVAの勉強をしようとしているのですが、
作ったswingコンポーネントの文字が文字化けしてしまってうまく表示されません・・・
文字化けしないようにするには、どうすればいいでしょうか?
962デフォルトの名無しさん:2005/04/07(木) 23:16:32
>>961
javac -encoding xxx Foo.java でソースの文字コードを指定、とか?
963デフォルトの名無しさん:2005/04/07(木) 23:18:48
>>962
レスありがとうございます。
最初Windowsで作ってたソースなんですが、
Linuxに移した時に、nkfでeucに変換しました。
eucじゃダメなんでしょうか・・・?
964デフォルトの名無しさん:2005/04/07(木) 23:19:53
>>961
フォントが設定されてないとか?
965デフォルトの名無しさん:2005/04/07(木) 23:22:41
>>964
フォントが設定されていないとは・・・
メニューバーのアイテムにsetFontで・・・って事ですか?
setFontはしてないですね・・・
それが原因でしょうか?
ちょっとソース書き換えてみます。ありがとうございました
966デフォルトの名無しさん:2005/04/07(木) 23:35:46
>>965
そうじゃなくて、font.properties.ja とか、その辺。
1.5からやり方かわったんだっけ?

WindowsだとMSゴシックとか消さない限り標準で入ってるけど、
Linuxだとディス鳥によってフォントが入ってなかったり、
フォントが置いてあるディレクトリが違ったりするので、その設定ね。
Swingは自前でフォント描画するのでOSとかX86での設定とは無関係に、
フォント設定してやらんといかんのよ。
967デフォルトの名無しさん:2005/04/07(木) 23:54:05
DOMで読み込んだXMLのテキストで 〜 や − が含まれると ? に変換されてしまいます。
何をすればこのような文字化けを回避できるのでしょうか?
ただし、Eclipse上で実行すると平気です。コンソールから実行すると上記のようになってしまいます。
どなたか教えて頂けたら幸いです。
968デフォルトの名無しさん:2005/04/08(金) 00:00:20
MS932とShift_JISの違いでしょう>>967
969デフォルトの名無しさん:2005/04/08(金) 00:19:48
>>966
あ・・・そういう根本の設定ですか・・・
うーん、フォントは入ってるのは確かですが、
場所が違うんで文字化けしてるんでしょうね・・・
どうやって設定するんだろう・・・_| ̄|○
調べてみます、ありがとうございました
970デフォルトの名無しさん:2005/04/08(金) 00:44:30
>>968
どのような手段をとれば良いのでしょうか?
971デフォルトの名無しさん:2005/04/08(金) 00:52:00
>>970
現在のコードかいてもらわんと
972デフォルトの名無しさん:2005/04/08(金) 00:59:37
やった!
やっと文字化けせずに日本語が表示できるようになりました!
>>966さん、すごい参考になりました。
1.5からやり方が違いましたが、font.properties.jaからいろいろ辿りました・・・
こんな所で躓くとは・・・
Javaの勉強どころじゃなかった、今日は寝よう_| ̄|○
973デフォルトの名無しさん
>>972
オツカレ