繁体   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