次のようなパネルがあります。
class A extends JPanel{
private JButton button;
A(int width, int height){
setSize(width, height);
button = new JButton("text");
button.setIcon(IconLoadedHere);
button.setBounds(50, 50, getWidth()/5, getHeight()/5);
button.setBorder(BorderFactory.createEmptyBorder());
add(button);
}
}
JFrame は次のようなものです。
public class window extends JFrame{
private JPanel panel;
public window(){
panel = new JPanel();
setTitle("test");
setSize(1280, 720);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
public void loadA(){
remove(panel);
panel = new A(getWidth(), getHeight());
add(panel);
validate();
}
}
ボタンには2つの問題があります:
画像の上にテキストを配置したいのですが、それは可能ですか (できれば画像の中央に)? 現在、その左側に表示されます。(解決済み)
何らかの奇妙な理由
setBounds
で機能しないため、ボタンは常に上部中央に表示されます (レイアウトなしでのみ使用できるようです。ボタンの場所とサイズを設定する代替手段はありますか?)
また、1 つの質問: ウィンドウのサイズを変更したい場合、それに応じてボタンとテキストのサイズを変更するにはどうすればよいですか? (現在、それらを1つずつ変更することで解決策が見つかりました。他に方法はありますか?)