JFrame
(MyFrame
)を拡張するクラスとJPanel
(MyPanel
)を拡張するクラスの2つのクラスがあります。この考え方は、MyPanel
クラスのインスタンスを既存の可視インスタンスMyFrame
に追加できるようにすることです。JPanelを拡張するクラスはUIを更新しません
public class MyFrame extends JFrame {
public MyFrame() {
setVisible(true);
JPanel panel = new MyPanel();
add(panel);
}
}
public class MyPanel extends JPanel {
public MyPanel() {
add(new JButton("Test"));
}
}
public class Program {
public static void main (String[] args) {
new MyFrame();
}
}
コードは実行されてもエラーは発生しませんが、MyPanelがMyFrameに追加されてもUIは更新されません。
'repaint()'と 'pack()'を試したことがありますか? –
ああ、 'pack()'はJPanel要素をうまく表示しますが、レイアウトをかなり大きくねじ込みます。現在のレイアウトに影響を与えずにこれを達成する他の方法はありますか? – ryansin
@ user2696497レイアウトマネージャーを変更してください – MadProgrammer