JFrame からタイトル バーを削除したいので、その JFrame で setUndecorated(true) を呼び出しますが、装飾がオンのときに存在するその JFrame の境界線 (気の利いたグラデーション) を保持したいですか? それをしてもいいですか?LookAndFeel のデフォルトの境界線インスタンスを取得したり、グラデーションの境界線を自分で作成したりするようなものですか?
質問する
2206 次
2 に答える
2
デフォルトのシステムの LookAndFeel ウィンドウの境界線は、Java ではなくシステムによって描画されるため、ウィンドウだけからタイトル バーを削除する方法はありません。あなたができる唯一のことは、ウィンドウの装飾を外し、自分で境界線を引くことです (そうです、システムの境界線を完全にコピーするには、多くの労力を費やす必要があります)。
そのようなものはSWTで利用できるかもしれませんが、それを使用するには、標準の Swing を放棄する必要があります。
于 2012-04-12T12:38:00.617 に答える
1
これを視覚的に実現するには、 を作成しJPanel
て境界線を設定し、パネルをフレームのコンテンツとして設定します。
public class Undecorated {
public static void main(String[] args) {
JFrame frame = new JFrame();
JPanel borderedPanel = new JPanel();
//Use any border you want, eg a nice blue one
borderedPanel.setBorder(BorderFactory.createMatteBorder(5, 5, 5, 5, Color.BLUE));
frame.setContentPane(borderedPanel);
frame.setUndecorated(true);
frame.setSize(new Dimension(200, 200));
frame.setVisible(true);
}
}
于 2012-04-12T11:28:57.157 に答える