2

これは小さな問題だと思います。

JFrameヘビゲームで表示されるものがあります。テキストなどは"Game Over, your snake is crashed"、に表示されますJLabel

問題は、私JLabelがいつも空であるということです!

コードは次のとおりです。

package ch.gibb.snake1;

import java.awt.Dimension;
import java.awt.Toolkit;

import javax.swing.JFrame;
import javax.swing.JLabel;

public class endFrame extends JFrame {

        /**
         * Auto-generated VersionUID
         */
        private static final long serialVersionUID = -6535942219723507798L;

        public static void main(String[] args) {
            displayFrame();
        }
        public static void displayFrame() {

            JFrame frame = new JFrame("Game Over");
            JLabel info = new JLabel("My 127.0.0.1 is my castle", JLabel.CENTER);

            int height = 670;
            int width = 630;

            Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
            int ex = (screen.width / 2) - (width / 4); // Center horizontally.
            int ey = (screen.height / 2) - (height / 4); // Center vertically.

            frame.setTitle("Game Over");
            frame.setBounds(ex, ey, width / 2, height / 2);
            frame.setLayout(null);
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

            info.setBounds(ex, ey, width/2, height/2);

            frame.add(info);
            frame.setVisible(true);
        }
    }
4

2 に答える 2

1
    frame.setTitle("Game Over");
    frame.setBounds(ex, ey, width / 2, height / 2);
    //frame.setLayout(null);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    //info.setBounds(ex, ey, width / 2, height / 2);

最終結果:

ゲーム終了

于 2013-01-06T14:03:23.777 に答える
0

JLabelX座標とY座標をJFramesここで寸法の外側に設定したため、は表示されません。

info.setBounds(ex, ey, width / 2, height / 2);

でこの呼び出しを行うように設定する必要がありますJFrame

frame.setBounds(ex, ey, width / 2, height / 2);

また、レイアウトマネージャーを使用すると、子コンポーネント自体に境界を設定する必要がなくなります。

于 2013-01-06T14:00:56.407 に答える