JFrame
のインセットを設定する方法はありますか? 私はJFrameのインセットを設定するにはどうすればよいですか?
frame.getContentPane().getInsets().set(10, 10, 10, 10);
と
frame.getInsets().set(10, 10, 10, 10);
を試みたが、それらのどれも動作するようには思えません。
JFrame
のインセットを設定する方法はありますか? 私はJFrameのインセットを設定するにはどうすればよいですか?
frame.getContentPane().getInsets().set(10, 10, 10, 10);
と
frame.getInsets().set(10, 10, 10, 10);
を試みたが、それらのどれも動作するようには思えません。
LayOutConstraintのオブジェクトを作成し、そのインセットを設定する必要があります。 以下の例では、GridBagLayout()を使用し、GridBagConstraint()オブジェクトを使用しました。
GridBagConstraints c = new GridBagConstraints();
JPanel panel = new JPanel(new GridBagLayout());
c.insets = new Insets(5, 5, 5, 5); // top, left, bottom, right
c.anchor = GridBagConstraints.LINE_END;
// Row 1
c.gridx = 0;
c.gridy = 0;
c.anchor = GridBagConstraints.LINE_START;
panel.add(isAlgoEnabledLabel, c);
JPanel contentPanel = new JPanel();
Border padding = BorderFactory.createEmptyBorder(10, 10, 10, 10);
contentPanel.setBorder(padding);
yourFrame.setContentPane(contentPanel);
だから、基本的に、contentPanel
はあなたのフレームの主なコンテナです。
私は 'getContentPane'メソッドを使いませんでした。' setBorder'メソッドにアクセスするために 'JPanel'という名前の' contentPanel'を作成しました。 –
Insets
のJFrame
を上書きすることは、実際の問題を解決するものではありません。 あなたの質問に答えるために、JFrame
のインセットを設定することはできません。 JFrameを拡張し、getInsets
メソッドをオーバーライドして、必要なインセットを指定する必要があります。
この質問にはまだ確定的な回答がありません。basiljamesと言ってもいいです。hereです。正しい方法は、JFrame
を拡張し、getInsets()
メソッドをオーバーライドすることです。あなたがそれを必要としない理由例えば
import javax.swing.JFrame;
import java.awt.Insets;
public class JFrameInsets extends JFrame {
@Override
public Insets getInsets() {
return new Insets(10, 10, 10, 10);
}
private JFrameInsets() {
super("Insets of 10");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
pack();
setMinimumSize(getSize());
setVisible(true);
}
public static void main(String[] args) {
new JFrameInsets();
}
}
? –
コンテンツパネルに 'JPanel'を使用している場合、単純に' panel.setBorder(new EmptyBorder(10,10,10,10)); ' –
@AndrewThompson OPがフレームのインセットを設定するよう求めているのなら、 'getInsets()'をオーバーライドしますか? – Dan