簡體   English   中英

JFrame,JPanel和Gridlayout問題

[英]JFrame, JPanel, and Gridlayout Issues

快速概述,我的項目涉及獲取.txt文件並將其轉換為2d數組,然后將其繪制到JFrame中。 在測試期間,我使用了JButtons而不是稍后將要構建的自定義類。 我遇到了兩個我不知道如何解決的錯誤。 對於這些圖片,這全部基於2行16列的網格布局。 當我將JButtons添加到面板時,它看起來像這樣

當我將它們添加到JFrame時,它看起來像這樣

這是用於創建JFrame和JPanel並呈現它的代碼:

    /**
 * This method creates a JFrame, JPanel, and then renders
 * all of the level in the JFrame
 */
public void render()
{
    JFrame frame = new JFrame("<Insert Title>");

    //Make it full screen for any computer monitor
    frame.setSize(JFrame.MAXIMIZED_HORIZ, JFrame.MAXIMIZED_HORIZ);
    frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setResizable(false);
    frame.setUndecorated(true);
    frame.setVisible(true);


    JPanel panel = new JPanel(grid);
    frame.setLayout(grid);
    frame.add(panel);

    panel.getInputMap(IFW).put(KeyStroke.getKeyStroke("ESCAPE"), "quit");
    panel.getActionMap().put("quit", quit);

    //Draw!
    for(int row = 0; row < drawStuff.length; row++)
    {
        for(int col = 0; col < drawStuff[row].length; col++)
        {
            //Either panel.add or frame.add here
            panel.add(new JButton("Row :"+row+" Col: "+col));
        }
    }
    panel.revalidate();
    panel.repaint();
}

我在這里做錯了什么嗎?

謝謝!

刪除frame.setLayout(grid); -這將允許panel占據框架的整個內容區域,而不是占據一行的一列

frame.setSize(JFrame.MAXIMIZED_HORIZ, JFrame.MAXIMIZED_HORIZ)確實沒有按照您的想法做,除非您想要一個2x4的框架

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM