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;
}
}
No.1ベストアンサー
- 回答日時:
全角空白でインデントしております。
コピペ後タブ等に置換してください。class TwoTextFieldsAndOneButton extends JPanel {
JTextField textField1 = new JTextField("テキストフィールド1");
JTextField textField2 = new JTextField("テキストフィールド2");
JButton button = new JButton("ボタン");
TwoTextFieldsAndOneButton(){
super();
add(textField1);
add(textField2);
add(button);
}
// 以下、各コンポーネントのプロパティへのアクセスや操作を行うコードを記述する
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- Java java final 1 2022/06/10 22:49
- Java JavaのSingletonパターンのprivateの持つ意味が分かりません。 5 2022/06/12 10:38
- C言語・C++・C# C#テキストボックスの文字を配列にいれてその後表示する 4 2022/07/17 04:47
- その他(プログラミング・Web制作) pythonのグローバル変数 2 2022/11/25 18:02
- Java インスタンス ダウンキャストについて以下の解釈であっているか教えて欲しいです。 サブクラスをスーパー 1 2022/03/27 18:53
- JavaScript アップロードファイルの種類によって処理を分岐させたいのですが書き方が分からずアドバイスお願いします 4 2023/06/17 19:12
- JavaScript 1日1回引けるJavaScriptおみくじについて 1 2022/12/12 22:28
- Ruby 【JAVA】数字をひし形に出力するプログラムについて 2 2022/07/11 23:32
- その他(プログラミング・Web制作) COBOL計算 2 2022/11/18 14:35
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB6.0でのTextboxの高さ変更
-
java junit list同士の比較方法
-
コンパイルエラー <identifier...
-
TextAreaでの文字の色
-
iアプリで複数の画面(パネル)...
-
JPanelの切り替えと再描画
-
javaで文字数制限するには?
-
KeyListenerの使い方について
-
エラーで式の開始が不正ですと...
-
ボタンクリック後パネルを再描...
-
4択クイズでのランダム出題の...
-
連番をオブジェクト名の最後に...
-
Enterキーでボタンを押すにはど...
-
キーボードから入力された全角...
-
タスクトレイのメニュからウィ...
-
ArrayListの使い方について(初...
-
c言語のプログラミングで1から1...
-
IF関数でEmpty値を設定する方法。
-
C言語のポインターに関する警告
-
System.err. printlnとSystem.o...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
java junit list同士の比較方法
-
EXECLの行を削除
-
JPanelの切り替えと再描画
-
TextAreaでの文字の色
-
最後の行に移動するには?
-
コンパイルエラー <identifier...
-
連番をオブジェクト名の最後に...
-
JDialogを閉じた時の処理
-
JPanelの重ね方/OverlayLayout他
-
JTableの列ヘッダ
-
ボタンクリック後パネルを再描...
-
【Swing】JPanel クラス外から...
-
4択クイズでのランダム出題の...
-
次のように書いたのですが、ウ...
-
エラーで式の開始が不正ですと...
-
KeyListenerの使い方について
-
JavaでのSwingを使った簡易電卓...
-
あるコンボボックスを選択する...
-
ArrayListの使い方について(初...
-
VB6.0でのTextboxの高さ変更
おすすめ情報