0

「0フィート」から「999フィート」までの文字列を表示するラベルがあるため、最大でサイズ6の文字列が必要です。グリッドレイアウトを使用して、そのラベルを特定の列に配置できるようにしていますする必要があります。ラベルの背景も欲しい。しかし問題は、背景のサイズを適切に設定できないことです。

自分ではできない黒い部分を必要な分だけサイズダウンしたい

    public Controller() {
    super(new GridLayout(9, 9));
    try {
        Background = ImageIO.read(getClass().getResourceAsStream(
                "background.jpg"));
        TestImage = ImageIO.read(getClass().getResourceAsStream(
                "VTOLHorizontalLevelIndicator.png"));
        setPreferredSize(new Dimension(Background.getWidth(null),
                Background.getHeight(null)));

    } catch (IOException ex) {
        ex.printStackTrace();
    }

    for (Direction direction : Direction.values()) {
        directionMap.put(direction, false);
    }
    setKeyBindings();
    Timer timer = new Timer(TIMER_DELAY, new TimerListener());
    timer.start();
    int i = 3;
    int j = 11;
    JLabel[][] panelHolder = new JLabel[i][j];
    setLayout(new GridLayout(i, j));

    for (int m = 0; m <= 2; m++) {
        for (int n = 0; n <= 10; n++) {
            if (m == 1 && n == 1) {
                lblAltitude.setFont(new Font("Gotham Bold",1,12));
                lblAltitude.setToolTipText("Altitude");
                lblAltitude.setOpaque(true);
                lblAltitude.setBackground(Color.black);
                lblAltitude.setMinimumSize(new Dimension(50,25));
                add(lblAltitude);
            } else {
                panelHolder[m][n] = new JLabel(" ");
                add(panelHolder[m][n]);
            }
        }
    }

}

上記のコードは、GridLayout とラベルを初期化するコンストラクターを示しています。 適切なレイアウトを使用していますか? 私の主な関心事は、適切な場所にラベルを取得することです。グリッド形式ではなく、この GUI の特定の座標にある可能性があります。

4

1 に答える 1

4

GridLayout は、すべてのコンポーネントを展開してパネルを埋めます (各コンポーネントを同じサイズにします)。

于 2012-06-14T18:42:23.033 に答える