【问题标题】:drawing in negative coordinates java swing在负坐标中绘制java swing
【发布时间】:2015-11-12 18:35:46
【问题描述】:

如何通过 JScrollPannel 左下滚动到负坐标区域?我正在开发一个带有拖放功能的编辑器。例如,我们在 JPanel 的中心有一个小圆圈,其坐标为 (50, 50)。这个圆圈只在 JPanel 上绘制,而不是 java.awt.Component,这就是它可以获取任何坐标值的原因。我们将这个圆向左拖动,它的坐标变为 (-30, 50)。移动后如何看到这个圆圈? 向右拖动圆圈后,如果圆圈的位置超出 JPanel 的范围,我可以增加 JPanel 的大小。但是第一种情况我需要做什么呢?

嗯,另外我还试着画了一幅画。

【问题讨论】:

  • 我不明白您想要调整什么/如何调整...但是当您调整 JPanel 的大小时不会包含负坐标。组件坐标始终从左上角的 (0,0) 开始。
  • Circle 不是 Component (java.awt.Component),它只是 JPanel 上的一个绘图。如果你把这个圆圈拖出 JPanel,它将被 JPanel 在负坐标上重新绘制(当然,如果它会被拖到左边)。
  • JPanel 是组件...它提供了坐标系。
  • 对不起,也许我不是很好的解释者......我同意你的观点,JPanel 是提供坐标系的。但是你有没有试过在 JPanel 上用负坐标绘制一些形状?有用。如果此形状超出范围,则只有另一半可见。

标签: java swing location jpanel jscrollpane


【解决方案1】:

查看Drag Layout。它是一个布局管理器,旨在允许您拖动组件。

  1. 如果一个组件被拖到一个负位置,那么所有组件的位置都会被转换为负值,以确保所有组件的位置都是正的
  2. 在拖动每个组件后会重新计算首选大小。

【讨论】:

  • 好吧,我也想过同样的决定。不幸的是,我的圈子不是组件。它们只是图纸。这就是为什么我不能使用任何布局。无论如何,谢谢。
猜你喜欢
  • 1970-01-01
  • 2013-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-01-05
相关资源
最近更新 更多