Java JPanel不更新,无论我尝试什么

Java JPanel不更新,无论我尝试什么,java,swing,jframe,jpanel,twitter4j,Java,Swing,Jframe,Jpanel,Twitter4j,我正在制作一个小程序,显示球队/球员/然后是他们的推特提要、推特等。我的问题似乎与此无关,只是我的jPanel没有更新。我在项目中取得了很大的进展,我一直在我的方法中抛出随机代码段,因此一旦我单击某个东西,“左”jpanel要么被jbuttons替换,要么被放入jbuttons,我尝试了这两种方法。这是我一直试图开始工作的代码段,它确实做到了,只是没有达到预期的效果 public void mousePressed(MouseEvent e) { System.out.p

我正在制作一个小程序,显示球队/球员/然后是他们的推特提要、推特等。我的问题似乎与此无关,只是我的jPanel没有更新。我在项目中取得了很大的进展,我一直在我的方法中抛出随机代码段,因此一旦我单击某个东西,“左”jpanel要么被jbuttons替换,要么被放入jbuttons,我尝试了这两种方法。这是我一直试图开始工作的代码段,它确实做到了,只是没有达到预期的效果

public void mousePressed(MouseEvent e) {        
    System.out.println("You clicked on " + ap.getTeams()  [addPlayers.OPTIC].getTeamName());
        for(int i = 0; i<4; i++){
            //JPanel temp = ap.makePanel(ap.getTeams()[ap.OPTIC].getPlayers().get(i).getTwitterScreenName());
            //temp.setBounds(0,(i*125),   450,125);
            //left.add(temp);

            JButton b = new JButton("Test");
            b.setBounds(30,30,30,30);
            left.add(b);
            left.revalidate();
            add(left);
            add(b);
            right.add(b);
            left.setVisible(false);
            left.setVisible(true);

            System.out.println(i);
        }
    }   
}
public void mousePressed(MouseEvent e){
System.out.println(“您单击了”+ap.getTeams()[addPlayers.OPTIC].getTeamName());
对于(int i=0;i
  • 避免空布局和挫折,因为这会导致非常不灵活的GUI,虽然它们在一个平台上看起来很好,但在大多数其他平台或屏幕分辨率上看起来很糟糕,并且很难更新和维护。相反,您需要学习布局管理器,然后嵌套JPanel,每个都使用自己的布局管理者可以创建在所有操作系统上看起来都不错的令人愉悦且复杂的GUI
  • 交换JPanel或任何组件的最佳方法是使用
  • 如果仍然卡住,那就发一个帖子。这是我们真正看到和体验你的问题的最好方式
  • 不要像使用
    b
    JButton变量那样将组件添加到多个容器中。实际上,您是在将其添加到三个容器中
  • 您似乎试图向容器添加四个JButton,给它们所有相同的边界,一个正好位于另一个之上??对不起,但是我越看您的代码,它就变得越古怪。再次,停止这种胡说八道,在Swing教程中学习布局管理器,并使用它们
  • “我一直在我的方法中抛出随机代码段,以使其成为……”
    ——向墙上扔东西,看看什么东西不是创建程序的好方法。从知识库开始——这里是Swing教程和Java API,然后规划程序结构,然后创建代码

  • 编辑
    你问:

    ……我所要问的是,整件事不更新有什么问题

    如果不使用CardLayout并手动更改组件,则需要调用
    revalidate()
    repaint()
    更改后,容器应使用其新组件进行更新。如果这不能解决问题,则很可能您的代码中有问题未显示给我们,然后您将再次希望创建并发布。再次,这是我们实际查看和体验您的问题的最佳方式

  • 避免空布局和挫折,因为这会导致非常不灵活的GUI,虽然它们在一个平台上看起来很好,但在大多数其他平台或屏幕分辨率上看起来很糟糕,并且很难更新和维护。相反,您需要学习布局管理器,然后嵌套JPanel,每个都使用自己的布局管理者可以创建在所有操作系统上看起来都不错的令人愉悦且复杂的GUI
  • 交换JPanel或任何组件的最佳方法是使用
  • 如果仍然卡住,那就发一个帖子。这是我们真正看到和体验你的问题的最好方式
  • 不要像使用
    b
    JButton变量那样将组件添加到多个容器中。实际上,您是在将其添加到三个容器中
  • 您似乎试图向容器添加四个JButton,给它们所有相同的边界,一个正好位于另一个之上??对不起,但是我越看您的代码,它就变得越古怪。再次,停止这种胡说八道,在Swing教程中学习布局管理器,并使用它们
  • “我一直在我的方法中抛出随机代码段,以使其成为……”
    ——向墙上扔东西,看看什么东西不是创建程序的好方法。从知识库开始——这里是Swing教程和Java API,然后规划程序结构,然后创建代码

  • 编辑
    你问:

    ……我所要问的是,整件事不更新有什么问题


    如果不使用CardLayout并手动更改组件,则需要调用
    revalidate()
    repaint()
    在更改后更新容器,容器应使用其新组件进行更新。如果这不能解决问题,则可能您的代码中有问题未显示给我们,然后您将再次希望创建并发布。这也是我们实际查看和体验您的问题的最佳方式。

    我的预期目标是拥有4 JP点击一个按钮创建一个面板,然后显示在一个特定区域,然后另一个按钮将创建4个不同的面板,相同的大小和布局/位置,并将它们放置在该特定区域。按钮相互重叠的原因是因为我只是把它放在那里,试图找出为什么它没有更新,这不是p我的代码艺术。我更熟悉大多数布局经理,我测试过网格和卡片,它们看起来都不工作或者不是我想要的。我所要问的是,整件事不更新有什么问题?我的目标是在点击一个按钮时创建4个JPanel,然后显示在某个区域,然后再点击另一个按钮ld创建了4个不同的JPanel,相同的大小和布局/位置,并将它们放在特定的区域中。按钮相互重叠的原因是因为我只是将它们放在那里,试图找出为什么它没有更新,这不是我代码的一部分。我更熟悉大多数布局管理器,我测试了网格和卡片,两者似乎都很相似er不工作或不是我想要的。我只想问的是,整件事不更新有什么问题?为了更快地获得更好的帮助,请发布一个(最简单的完整和可验证的示例)。“我只是