簡體   English   中英

顯示擴展JScrollPane的類

[英]Displaying Class Which Extends JScrollPane

我對Swing和GUI編程一般都比較新,所以我可能在這里犯了一些非常簡單的錯誤,但是:

我有一個名為TilePanel的類,它擴展了JScrollPane 這個類的目的是包含我的另一個自定義類TileMap ,它本身擴展了JPanel TilePanel的問題是TilePanel永遠不會顯示。

這對我來說似乎非常奇怪,因為在創建TilePanel類之前,我運行了一個測試,我在其中使用了普通的JScrollPane ,並添加了TileMap 這通常對我來說,我能夠成功滾動我的TileMap 我的TilePanel類中的代碼對JScrollPane並沒有太大變化,所以我沒有理由認為它不應該起作用。

以下是TilePanel類的代碼:

import javax.swing.JScrollPane;

public class TilePanel extends JScrollPane
{
    TileMap map;

    public TilePanel(int rows, int cols)
    {
        super(VERTICAL_SCROLLBAR_NEVER, HORIZONTAL_SCROLLBAR_NEVER);

        map = new TileMap(rows, cols, 9, 9);
        map.addBorder(Tile.EMPTY, 9);
        this.add(map);
    }
}

TileMap使用GridLayout作為其默認布局,如果它影響任何東西。

根據我在這里和其他地方的搜索,我沒有發現任何人有類似的問題,除非我真的很難搜索。 我發現有些人在向JScrollPane本身添加內容時遇到了問題,但是沒有人在顯示擴展JScrollPane的類時遇到問題。

如果需要更多信息,我很樂意添加它。

不要擴展JScrollPane,也不要向scrollpane添加任何新功能。 只需創建TileMap類並將其設置為scrollPane的視口即可。

在您創建TilePanel類的類中,您的代碼應該類似於:

//TilePanel panel= new TilePanel(); // not needed.
TileMap map = new TileMap(rows, cols, 9, 9);
map.addBorder(Tile.EMPTY, 9);
JScrollPane scrollPane = new JScrollPane( map );
frame.add( scrollPane );

暫無
暫無

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

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