2

重複の可能性:
JInternalFrameを最大化するときのJInternalFrame上のサンプルプログラムJMenubar

私はSwingアプリケーションに取り組んでおり、レイアウトJFrameを初めて使用します。最大化またはサイズ変更可能JInternalFrameな場合に、画面のサイズに合わせてJFrame、グリッドレイアウトを追加しましたが、機能しませんでした。 。だから私は適切なレイアウトを追加する方法とそれを実装する方法を尋ねています:D。助けてください。

4

2 に答える 2

3

@Catalina のアイデアの例として、ここsetFullScreenWindow()に示すようにを使用して、フレームの中心にを追加できます。内部フレームも忘れないでください。JDesktopPanepack()

import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import javax.swing.JDesktopPane;
import javax.swing.JFrame;
import javax.swing.JInternalFrame;
import javax.swing.JLabel;

/**
 * @see https://stackoverflow.com/a/13806057/230513
 * @see https://stackoverflow.com/questions/7456227
 */
public class FullScreenTest {

    public static final String TITLE = "Full Screen Test";
    private final JFrame f = new JFrame(TITLE);
    private final JDesktopPane jdp = new JDesktopPane();

    public FullScreenTest() {
    }

    private void display() {
        GraphicsEnvironment env =
            GraphicsEnvironment.getLocalGraphicsEnvironment();
        GraphicsDevice dev = env.getDefaultScreenDevice();
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JInternalFrame jif = new JInternalFrame(TITLE, true, true, true);
        jif.add(new JLabel(TITLE + " " + TITLE), BorderLayout.NORTH);
        jif.add(new JLabel(TITLE + " " + TITLE), BorderLayout.CENTER);
        jif.add(new JLabel(TITLE + " " + TITLE), BorderLayout.SOUTH);
        jif.pack();
        jif.setLocation(100, 100);
        jif.setVisible(true);
        jdp.add(jif);
        f.add(jdp, BorderLayout.CENTER);
        dev.setFullScreenWindow(f);
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                new FullScreenTest().display();
            }
        });
    }
}
于 2012-12-10T17:32:08.797 に答える
2

How to Use Internal Framesに示されているように、JInternalFrame本当にを に入れる必要があります。を使用すると、フレームとともに成長します。こちらのように、フレームを画面に合わせる方法は既にご存じでしょう。JDesktopPaneGridLayoutJFrameJDesktopPane

于 2012-12-10T13:46:05.550 に答える