- ベストアンサー
javaのswingで、JLabelを継承したコンポーネントのインスタ
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
JLabel#getParent()で親コンポーネントを取得できますが、 それを再帰的に呼ぶことで、JAppletインスタンスを取得することができます。
関連するQ&A
- javaのswingコンポーネントについて質問です。
javaのswingコンポーネントについて質問です。 javaをやり始めて2ヶ月ぐらいたちました。 今までアプレットとアプリケーションの両方をやりこちらはできたのですが 「swing」を使用したアプレット(JApplet)だけがアプレットビューアやhtmlで開いても実行できません。 わかるかたできれば教えていただければ幸いです。 追記 実行できないのはソースファイルにJAppletで組んだプログラムだけです。 本に記載されたソースプログラムやインターネットに上がっているソースプログラムを実行してみましたが これらもJAppletを使用したものだけができませんでした。
- 締切済み
- Java
- java swing JLabelの型とは?
javaでGUI作成、すなわちSwingを行っている者です。 教えて!gooでたくさんの質問をし、たくさんの回答をしてくださった皆様のおかげで、game制作に取りかかることにしました! 本当にありがとうございました。 本題に入りますが、私の作ってるgameの内容は、単純で自分の体力を1000とし、相手の体力を100にして何体倒せるかというサバイバルゲームです。 そこで困ってしまったのが自分と相手の数値をどう出力するかということ、そしてJLabelで自分と相手の数値を出力し、型変換してint型にすればいいんだと思いつきましたが、これが失敗。JLabelをString型だと思っていた私は、String➡intに変換しようとしたんですが、JLabelはString型ではないといわれてしまいました。 JLabelを型変換してint型にするにはどうすればいいでしょうか? 又SwingでJLabel以外に数値を出力する方法はあるよ、という意見がありましたらご指摘お願いします。 こんなの基本だよ!と思われるかもしれませんが、どのサイト教材を調べても分からなかったので質問させていただきました。よろしくお願いします。
- ベストアンサー
- Java
- Swingは軽量コンポーネントについて
今日は、JAVA Swing勉強中の初心者です。 本を読むとAWTは重量コンポーネント、Swingは軽量コンポーネント(一部重量コンポーネントもある)と 書かれていますが、これは一体何を意味するものでしょうか。 読んでても良く分からないのですが、重量コンポーネントはOSに近い所で動作する、軽量コンポーネントはその逆、、、 この内容について、プログラムを組む人間は何に気をつけなければならないのでしょうか。 どうも重量コンポーネントだから動作が重たいとか、遅いとか、メモリの消費が多いとかという解説も 見当たらないし、また、どちらが動作的に速いのか、遅いのか、OSへの負担が大きいのかも書いていません。 (読んでる本が悪すぎるのかも知れないですが。。。。) だから、AWTを使うときはどのように気をつけなければとか、Swingを書くときにどうしなければならないとかの記述 も、色々と調べてもどの本にも書いていませんが、だから一体何がどうなのでしょうか。 そもそも、重量コンポーネント、軽量コンポーネントとは何を表すもので、だから何がどうなるのでしょうか。 動作的なものについての記述なのでしょうか。 宜しくお願いします。
- ベストアンサー
- Java
- swingアプリで動作時にコンポーネント毎に設定されているデフォルトの
swingアプリで動作時にコンポーネント毎に設定されているデフォルトのフォントを取得したいです。 一部のJLabelの文字やJTextFieldの文字を大きく(小さく)表示したい時、 Fontクラスを使って設定する事になると思いますが、フォント名から指定しなければいけません。 swingのデフォルト値(dialog)であれば決め打ちでいいと思うのですが、変更されていると決め打ちだと浮いてしまいます。 そのため、デフォルト値を取得したいです。
- 締切済み
- Java
- JAVA swingについて
JAVA swingとAWTのみを使って画面を作成してるのですがうまくエラー<作りたい仕様> ・ポップアップウィンドウの大きさを決めることができる ・自由にボタンを設定できる(大きさ・場所など) ・設定したボタンにアクション設定できる(戻り値もOK) また、今あるフレームの上にパネルをはり、パネルの上にコンポーネントを追加して、エラー発生画面を作る方法でもいいです。 どちらかいい方法やクラスなどを知っていましたらぜひ教えて下さい。
- ベストアンサー
- Java
- Java AWTのコンポーネントについて
JavaのAWTで軽量コンポーネントと重量コンポーネント、軽量コンテナ・重量コンテナとありますが、 それぞれどのようなものでしょうか? ネイティブのピアを持つもの持たないものなどの違いがあると思いますが、 具体的にどのクラスはピアを持っていて、どのクラスはピアを持っていないのかを 簡単にわかる方法はないでしょうか? 書籍やネットでは「ComponentやContainerを直接拡張したクラス」は軽量とあるのですが、 「直接拡張したクラス」は継承とは別のようなので、理解に困っております。 PanelやCanvasは重量コンポーネントという記述はみつけたのですが、 Panelなどがなんで重量なのかがわからないです。 理解できていないので、わかりづらい質問になってしまい恐縮ですが、 詳しい方いましたら教えて頂けないでしょうか。
- 締切済み
- Java
- 継承とは?
お世話になります。 現在独学でJavaを学んでいるのですが、 『継承』のところでつまずいてしまいました。 参考書を元に継承の章を読んでいたのですが、 まず頭に浮かんだのは、 「継承をする意味は?」ということです。 継承をすることとしないことで何が違うのか。 また、必ず継承を行わなければならないような場面というのはあるのでしょうか? 特にSwingアプリケーションを作成していくと、 継承しないコードと継承したコードで記述ががらっと変わる気がしますが、 動作的に同じであればどっちでも良いのではないのか?というのが、 私の意見です。 この部分についてわかり安く説明している書籍やHPなどがありましたら 教えていただければ幸いです。
- ベストアンサー
- Java
- javaのawtとswing
色々なサイトを参考にしながらswingでjavaのプログラムを作成していたのですが、awtかswingをチェックしないで作成していたのに途中で気づきました。 import javax.swing.*; public class Test extends JFrame{ となっているのでswingになっていると思うのですが、他に見分け方(これ入ってたらswingなわけが無いだろう)みたいなものはありますか?
- ベストアンサー
- その他(インターネット・Webサービス)
- Swing自作コンポーネントをadd出来るように、
JTextFieldやJButtonなどを一つにまとめたコンポーネントを自作し、それをadd()出来るようにしたいです。frame.add(自作のクラスのインスタンス)を可能にしたいです。 調べて、paintComponent()を使えば良いということはわかったのですが、Graphicsのインスタンス(?)に線を描いたり、円を描いたりする方法はわかりましたが、JButtonやJTextFieldなどをGraphicsのインスタンス(?)に追加する方法はわからず、paintComponent()を使うやり方はできませんでした。 paintComponent()も使わずに、自分のできる方法で、組んだものを一応載せます。 import javax.swing.BoxLayout; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JTextField; public class MyComponentTest{ public static void main(String[] args){ JFrame frame = new JFrame("タイトル"); frame.setSize(400, 300); frame.setLayout(new BoxLayout(frame.getContentPane(), BoxLayout.Y_AXIS)); // 2つのテキストフィールドと一つのボタンを4つ追加する frame.add(new TwoTextFieldsAndOneButton().getContent()); frame.add(new TwoTextFieldsAndOneButton().getContent()); frame.add(new TwoTextFieldsAndOneButton().getContent()); frame.add(new TwoTextFieldsAndOneButton().getContent()); frame.setVisible(true); } } //2つのテキストフィールドと一つのボタンを一つの部品にしたい class TwoTextFieldsAndOneButton{ JTextField textField1 = new JTextField("テキストフィールド1"); JTextField textField2 = new JTextField("テキストフィールド2"); JButton button = new JButton("ボタン"); // こんなメソッドを使わずに、再現したい JPanel getContent(){ JPanel panel = new JPanel(); panel.add(textField1); panel.add(textField2); panel.add(button); return panel; } }
- ベストアンサー
- Java
- JLabelとJLabelを結ぶ直線をJComponentとしてカプセル化
別にJLabelでなくてもよいのですが、JPanel上のJComponentを繋ぐ直線を表すクラスをJComponentを継承したクラスとして扱いたいのですが、どのようにすればよいでしょうか? というのもやりたいことは、JPanel上のJComponentを移動させたときにそれを繋ぐ線も動くとともに、その線上で発生するイベント(たとえばMouseEvent)を処理したいからです。 現段階ではJPanelに直に線を描画し、JPanelと同じ大きさのオフスクリーンに各線の識別IDを色とした線を描画することで、カーソルの位置から当たり判定をするという荒い方法で対処しています。 なんとかこの線をオブジェクととしてカプセル化したいのですが、なにかよい方法はないでしょうか? ピュアJavaで実装したいため、SWT+EMF(+Draw2D)は考えていません。 またそのようなピュアJavaのライブラリがあれば教えてください。
- ベストアンサー
- Java
お礼
ありがとうございました。