Tag: viewport

JavaFX ScrollPane以编程方式移动视口 – 居中内容

我可以使用setVvalue(double)和setHvalue(double)方法在JavaFX ScrollPane中移动视口。 我正在努力做的是根据其位置将特定节点置于滚动窗格的内容中。 我尝试了各种localToScene()和boundsInParent()的组合。 我已阅读(很多)并看到了这个例子 如何滚动以使ScrollPane的内容中的节点可见? 哪个接近但不使对象居中只是让它们可见。 内置鼠标平移是很棒的,但我正在进行程序化平移的恶劣天气。 最终我需要能够进行缩放,所以我将实际形状放在一个组中,并将该组添加到滚动窗格内容中。 我想我应该对组进行缩放,然后我需要能够围绕组的中心进行缩放,以便我们回到操作并识别当前的中心位置。 任何可以提供的指针或示例都会非常感激。 上面链接中的代码示例是一个很好的SSCCE。 提前致谢, 安迪

JComboBox确定项目是否在下拉列表中不可见

我试图从JComboBox下拉列表中的JViewPort中查看每个项目是否可见 (我星期五加油) 编辑:我不想为重复事件实现MouseListener到System.out.print(…) 是不可能通过JList传递JComboBox,由JCombo#Model使用SwingUtilities http://download.oracle.com/javase/6/docs/api/javax/swing/SwingUtilities.html声明 ,但这个APi不在我的… import java.awt.*; import java.awt.event.*; import javax.swing.*; public class ItemVisibleRecCombo extends JFrame { private static final long serialVersionUID = 1L; private JComboBox fontsBox; public ItemVisibleRecCombo() { String[] numbers = {“one”, “two”, “three”, “four”, “five”, “six”, “seven”}; fontsBox = new JComboBox(numbers); fontsBox.setSelectedItem(0); fontsBox.addItemListener(new ItemListener() { @Override public void itemStateChanged(ItemEvent e) { […]

如何在不移动中心的情况下放大JPanel:数学还是Swing?

我正在尝试使用Swing制作可缩放的地图。 该地图是JScrollPane中的JPanel。 放大时,地图会更改大小,而paint()会将元素绘制在不同的位置。 一切都很好。 但是,ScrollPane在增加图像大小时没有更改视口,因此放大始终会将我正在查看的元素移出屏幕。 我尝试使用scrollRectToVisible()来解决这个问题,但是我没有设法为矩形获得正确的坐标,因为我在做几何体时失败了,或者因为我不太了解Swing。 这是我有的: public class MapPanel extends JPanel { […] public void setZoom(double zoom) { // get the current viewport rectangle and its center in the scaled coordinate system JViewport vp = (JViewport) this.getParent(); Rectangle rect = vp.getViewRect(); Point middle = getMiddle(rect); Dimension dim = rect.getSize(); // zoom in scaler.setZoom(zoom); setPreferredSize(scaler.transform(dim)); […]