当前位置: 首页 > 知识库问答 >
问题:

JPanel添加物质

司马昕
2023-03-14
    public void gameRender() {

    if( dbImage == null ) {
        dbImage = createImage( dbWIDTH, dbHEIGHT );
        if( dbImage == null )
            return;
    }
    //else
        dbg = dbImage.getGraphics();


    dbg.setColor( Color.white );
    dbg.fillRect( 0, 0, dbWIDTH, dbHEIGHT );
    dbg.setColor( Color.black );

这段代码来自试图创建JPanel子类的对象的JFrame子类(JPanel子类称为WalkAndJump3)。

    wj = new WalkAndJump3();

    Container c = getContentPane();
    c.setLayout( new FlowLayout() );

    c.add( wj );

我试图通过重写paintComponent来做我在JPanel子类中所做的事情,但它不起作用,我确实将WalkAndJump3 wj声明为实例变量,所以第一行应该没有问题。怎么了?同样,问题是绘制的矩形太小,位置不合适。

共有1个答案

王长卿
2023-03-14

它很小,因为您有FlowLayout(c.setLayout(new FlowLayout()))作为面板的容器(container c=getContentPane())布局。这意味着您添加到容器中的所有组件都将“一个接一个”对齐(实际上这是一个流:),它们的最小大小是默认的。在你的情况下-最小尺寸几乎为零,我猜。

有两个选项:
1。不是最好的方法--在JPanel上使用setPreferredSize(Dimension)强制扩展
2。好的一个-使用适当的布局来拉伸整个容器大小的面板,如下所示:

c.setLayout( new BorderLayout() );

这将有所帮助,但我强烈建议您阅读关于布局如何工作的Swing介绍:http://docs.oracle.com/javase/tutorial/uiswing/layout/using.html

 类似资料:
  • 我创建了一个JPanel,上面有我需要的所有JRadioButtons(称为PortSettings)。我还有一个按钮,叫做端口设置,当用户单击该按钮时,我需要JPanel上来显示单选按钮。我尝试将JPanel添加到actionlistener中,但没有效果。我的代码在下面。除了portsettings按钮之外,我已经从其他按钮中删除了所有其他ActionListener。如果这个问题让人困惑,我

  • 问题内容: 我有一个gui,它的Panel包含一系列标签和TextField,并使用spring布局(这是mainPanel),而另一个Panel仅包含button(buttonPanel)。我正在尝试使我的mainPanel也具有垂直滚动条。我想实现我的GUI,以便在JFrame中有2个面板。mainPanel出现在框架的顶部,而buttonPanel出现在mainPanel的下方。 我的问题是

  • 我正在尝试将此 JPanel 添加到 JFrame 中,但我看不到他。当我创建新的 java 类并自己制作这个框架时,一切都很好。 来自JFrame表单的代码。 来自 JPanel 的代码: 来自Java类的代码。 我想不出区别在哪里。有人能帮我吗?

  • 我正在创建一个swing应用程序,并希望将JfreeChart添加到JPanel中。我创建了一个方法,在该方法中我创建了如下所示的图表: 创建了一个全局变量: 由于某种原因,当我点击按钮时,图表没有显示出来。

  • 我目前有一个主JFrame包含几个JPanels,每个面板中都有一些文本。创建JPanels的代码在一个单独的类中(它“实现”JPanels)。如何仅向单个面板添加JScrollPane? 我已经花了一些时间尝试这样做,但什么也没有发生。顺便说一下,我的JPanel使用GridLayout 上面的类是另一个面板类的实例变量,它是主面板“MenuHold”的实例变量。但使用“MenuHolder”的

  • 我想在FlowLayout和GridBagLayout之间进行权衡。简而言之,我有一些组件要添加到我的JPanel中(我不知道有多少,这是在运行时创建的),我希望这些组件垂直居中。FlowLayout非常适合我的目标,但它在JPanel的顶部添加了组件。所以,我决定使用GridBagConstraints,正如有人在这里建议的那样(Java layout manager垂直中心),但这个解决方案的