问题标签 [jviewport]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JTable 获取第一个可见行
我有一个 Swing JTable。它很大,用户可以上下滚动查看他们想要处理的数据行。当用户停止滚动时,我想知道 JTable 的行号,它是用户可以看到的第一个可见行。在用户完成其他操作后,我想用它来滚动回表格中的这个位置(我知道如何做滚动块——它得到了让我难过的第一个可见行)。
java - JViewport.setView 出现无法捕获的错误
我无法提供 SSCCE,因为我无法在我的大型应用程序之外重复错误。
但这是一个片段和输出:
输出是:
然后程序似乎冻结在 vp.setView(P); 因为没有调用下一个 writePaneln。
但是,错误也没有被困住......
这里 writePaneln (为了完整性)
编辑 1
我已更改为在我的 java.util.timer 中使用 invokeLater:
java - 如何在 JTabbedPane 中创建 JScrollPane?
我正在尝试在我的 JTabbedPane 的一个选项卡中创建一个 JScrollPane。我尝试了我认为可行的方法:
其中窗格是我的 JTabbedPane,而 scrollPane 是我的 JScrollPane。这只是摆脱了我的 upgradesScreen 选项卡。我有点预料到这一点,但我不知道还能做什么。如果您需要更多代码来弄清楚它,请告诉我,我会把它放进去,否则,感谢您的帮助!
java - 为什么视口更改监听器被多次调用
我有一个视口,并为它附加了一个更改侦听器。每当我滚动浏览我的视口时,我的更改侦听器都会被调用大约四次。我不确定如何避免这种情况;我只希望通话发生一次?
java - 如何在 JScrollPane 中获取 JTable 模型的所有可见行
到目前为止,我知道如何使用 JScrollPane 的 JViewPort 对象在某一点获取特定行。
我很难弄清楚如何获取 JViewport.getMinimumY() 和 JViewport.getMaximumY() 之间的所有行。有没有办法收集这两个视口点之间的所有行项目,或者有没有办法只获取 JScrollPane 视图中的所有行?
java - JScrollPane 和 JViewport 最大尺寸小于内容的滚动限制
我有一个JFrame
包含一个JScrollPane
包含一个JPanel
。JPanel
包含一堆JTextArea
s 。我正在向其中加载大量文本(大约 8k-10k 个字符)。
布局工作正常,虽然滚动有点滞后。
真正的问题是,它似乎JPanel
有JScrollPane
32767JViewport
的大小限制,因此当任何大小JTextArea
超过该限制时,它就无法进一步滚动以显示文本的最后 1/3。
您可以在下面看到该问题的一个最小示例。我使用了 NetBeansJFrame
设计器,所以它可能有点长,但我唯一改变默认值的是JTextArea
s 是 s 的直接子级JPanel
,滚动条策略和稍大的字体大小:
如果你运行它并滚动到底部,你会看到计数达到 10 000,但它只达到 1637,你可以看到下一行的顶部像素几乎没有出现。
我已经尝试过, setMaximumSize
the和it但没有任何改变。我也有点困惑,即使有 10k 行文本,其中一些可以滚动到足以查看的距离,and方法返回原始值。setSize
JPanel
JScrollPane
JViewport
getRows()
getSize()
当我想要一个JTextArea
大于 32767 的可滚动时,处理这种情况的正确方法是什么?
java - 何时使用 JViewport.getExtentSize() 与 JViewport.getSize()?
查看源代码,似乎 JViewport.getExtentSize() 总是返回与 JViewport.getSize() 相同的值(同样适用于 setExtentSize() 和 setSize())。为什么两者都存在?它只是一个别名,以使您在代码中更清楚地了解 viewport.view 的大小(可见范围)吗?UI 代表中是否发生了其他事情和/或与我失踪的 plaf 相关的事情?或者,getExtentSize() 的存在纯粹是为了与 setExtentSize() 对称,而后者的存在是为了提供与 setSize() 不同的通知(我注意到当调用 setExtentSize() 时会通知 ChangeListeners)?
jscrollpane - 每次调用 setViewPosition() 时,我可以避免 JViewport 重新验证吗?
我正在使用 JViewport 的子类调试自定义滚动视图的问题。我从自定义 LayoutManager 中的 layoutContainer() 方法打印了一些信息,并看到它被连续调用,没有任何调整大小来触发它。我查看了源代码,似乎 JViewport.setViewPosition() 在每次调用时都会重新验证。我以为那不可能。所以我回到另一个使用标准 JScrollPane 的项目,并添加了以下代码:
这证明标准版本也存在同样的问题。有没有一种强大且被接受的方法来解决这个问题?我正在使用我的 JViewport 子类的几个实例来显示波形和其他使用 JViewport.setViewPosition() 实时滚动的内容,并且每 10 毫秒布置一次容器(每次完全相同)是非常低效的。我可以将 JViewport 子类化并覆盖它,但是理解为什么仅仅为了改变视图位置而认为有必要重新验证将有助于我避免产生新问题。目前我很困惑为什么这是必要的。
所以推论的问题是“为什么 JViewport.setViewPosition()”会导致重新验证?
java - Temporarily disable or prevent repainting JViewPort on scrolling with a mouseDrag
I have written a MouseListener
as defined below so that I can move a JButton
around to reorder the components that are within the JPanel
. The JPanel
is within a JScrollPane
so that when multiple components are added they can be scrolled.
The problem I have is that when dragging the component and the mouse goes out of the scrollpane/viewport then the component will snap back to its position within the JPanel
then will be drawn in the correct location. I assume that this behavior is due to the Viewport calling a repaint of its children when I call scrollRectToVisible()
Is there a way that I can prevent this from happening?
Please note that I am limited to Java 5
Listener
Gui (Created in NetBeans)
java - 在 JScrollPane 中获取 JPanel
我有一个 JScrollPane,我在 JScrollPane 中放了一个 JPanel。JPanel 拥有可变数量的 JLabel。
这是我“新”它的方式:
我想知道如何在另一个课程中获得这些 JLabel?我尝试了以下代码,但无法使用 ClassCastException。在那个类中,我成功获得了 JScrollPane,我将使用 scrollPane 来表示它。
事实上,在声明中:
抛出 ClassCastException。
感谢您的帮助:)