我已经写了一个棋盘游戏,现在我想在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移动到最适合的位置。
答案 0 :(得分:1)
您可以使用BorderLayout preferences.picture_id=7
作为框架的内容窗格。该窗格将包括:
contentPane
位置的BorderLayout.NORTH
(JPanel
)和FlowLayout(方向timerPane
)。您可以使用此面板容纳计时器 ComponentOrientation.RIGHT_TO_LEFT
。Component
处于BorderLayout.CENTER
位置。 您的代码(经过修改以包括此注意事项)将如下所示:
board