2

この質問を検索しましたが、明確で役立つ答えが実際には見つかりませんでした。私は最初の Java UI アプリ1 (Swing を使用) を構築していますが、1 つのことを疑問に思っていました: ウィンドウのサイズ変更を強制的にスケーリングするにはどうすればよいですか? それは私の次のプログラムにとって美的に重要なものです. 誰でもこれで私を助けることができますか?ありがとう!皆さん、私は「解決策を教えてください」とは求めていません。皆さんがそれを嫌っていることは知っています。私が解決策にたどり着くのを手伝ってくれる人が必要なだけです。

  1. ちょっとしたボーグルゲームです。Boggle のサイコロをシミュレートするためのインスタンスを含むグリッドがJButtonあり (これらは単語を形成するにはクリックする必要があります)、ウィンドウのサイズを変更すると、サイコロを正方形のままにしたいのですが、長方形になり、実際にはそうではありません。
4

2 に答える 2

2

ここJDigitに示すように、コンポーネントを埋めるために大規模なリサンプリングを行うアプローチを採用できる場合があります。フレームのサイズを変更して効果を確認します。とを同じ値に設定することで、1:1のアスペクト比を適用できます。関連する例をここに示しますBufferedImagewidthheightMath.min(width, height)

画像

于 2013-02-22T16:44:39.220 に答える
2

ウィンドウでコンポーネントのサイズ変更イベントをリッスンし、幅が変更されたときに目的のスケーリングされた高さを設定できます。

addComponentListener(new ComponentAdapter() {
  public void componentResized(ComponentEvent e) {
    SwingUtilities.invokeLater(new Runnable() {
      public void run() {
        // TODO: calculate new size and set it
      }
    });
  }
});

ただし、ちらつきを避けるなど、これを微調整する必要があります。

于 2013-02-22T16:09:08.657 に答える