如何将JPanel定位到JFrame的右上角

时间:2019-05-11 15:04:22

标签: java swing jframe jpanel layout-manager

我已经写了一个棋盘游戏,现在我想在JFrame的右上角添加一个计时器。我以为最好的解决方法是在右上角放置一个JPanel,然后将其倒计时更新。但是,我遇到了一个问题,我似乎无法弄清楚如何将JPanel放置到设置的位置。无论我尝试做什么,似乎都覆盖了整个屏幕,而不是我所放置的大小和位置。


    private final JFrame frame = new JFrame("myBoardGame");
    private JPanel jp = new JPanel();

    public ShowBoard(Board board){
        frame.setResizable(false);
        frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        frame.setLocationRelativeTo(null);
        frame.setContentPane(board);
        frame.setLayout(new BorderLayout());
        frame.pack();
        frame.setVisible(true);
        jp.setLayout(null);
        jp.setLocation(300,300);
        jp.setSize(100,100)
        frame.add(jp);
        this.board = board;
        getKeyBindings(); }

与其将其移动到位置300x300并将其尺寸设置为100x100,它会使整个屏幕变灰。我究竟做错了什么?我只是希望能够将JPanel围绕JFrame移动到最适合的位置。

1 个答案:

答案 0 :(得分:1)

您可以使用BorderLayout preferences.picture_id=7作为框架的内容窗格。该窗格将包括:

  1. 处于contentPane位置的BorderLayout.NORTHJPanel)和FlowLayout(方向timerPane)。您可以使用此面板容纳计时器 ComponentOrientation.RIGHT_TO_LEFT
  2. 您的Component处于BorderLayout.CENTER位置。

您的代码(经过修改以包括此注意事项)将如下所示:

board