Java 如何使JFrame可滚动?

Java 如何使JFrame可滚动?,java,swing,scroll,jframe,Java,Swing,Scroll,Jframe,我想上下滚动我的JFrame的内容,最好使用滚动条。我不想将内容包装在JPanel或JScrollPane中,因为这会导致我的应用程序出现一些视觉故障 你知道怎么做吗?JScrollPane是最简单的方法;您说存在小故障,但这可能表明代码中存在问题,即使不使用JScrollPane,这仍然是一个问题 如果您完全设置为不使用JScrollPane,则应使用BorderLayout创建JPanel,添加一个JPanel(称为“中心”),其中BorderLayout.center和layout设置为n

我想上下滚动我的
JFrame
的内容,最好使用滚动条。我不想将内容包装在
JPanel
JScrollPane
中,因为这会导致我的应用程序出现一些视觉故障


你知道怎么做吗?

JScrollPane是最简单的方法;您说存在小故障,但这可能表明代码中存在问题,即使不使用JScrollPane,这仍然是一个问题


如果您完全设置为不使用JScrollPane,则应使用BorderLayout创建JPanel,添加一个JPanel(称为“中心”),其中BorderLayout.center和layout设置为null。在“中心”中添加您的内容,并将另一个JScrollBar添加到BorderLayout.EAST,将AdjustmentListener添加到JScrollBar。当adjustmentListener触发时,您需要将居中的内容(Component.setLocation(…)移动到JScrollBar的相对y偏移量,并在“center”上调用repaint

什么样的视觉故障?修复它们可能比发明一个新的滚动系统更容易。如果在JScrollPane或JPanel中包装视图会导致视觉故障,那么您就做错了。与其试图找到解决方法,不如专注于解决现有问题。不能将滚动条直接应用于JFrame。您需要使用JPanel或JScrollPane。不要回避这些选项,你应该找出它们为什么不能正常工作并加以修复。@Madchi告诉我,我正在创建一个列表,其中包含我在线观看的节目。我正在动态添加包含名称、插曲等的自定义JPanel。JPanel还包括删除/更新JPanel的按钮。一旦我更新它们,就会发生这种情况:除了文本以外的所有内容都会消失,我必须将光标悬停在每个按钮上,使其再次可见。只有当自定义面板被包装在另一个JPanel/JScrollPane中,而不是直接在JFrame上显示它们时,才会发生这种情况。非常感谢。尽管我只是将控件连接到2个按钮上,并在空布局JFrame中移动每个单独的元素(0、y、650、70),因为它们都在ArrayList中。