我正在编写一个将最终在linux上运行的Jython应用程序。 我在windows机器上开发,当在linux上testing时,我遇到了不一致的行为。
开发机器 – windows XP,Java 6,Jython 2.5.2
testing机器 – 红帽3.4.3,Java 6,Jython 2.5.2
在windows中,使用Java或Jython,我会得到我认为是“正常的”JComboBox行为:
点击文字或箭头,名单下降。
点击所需的项目,进行select。
在linux上,我从Java获得以下行为:
点击并按住 ,列表下降。
释放所需的项目,进行select。
我也得到了一些非常奇怪的行为,比如
ComboBox本身被渲染到它应该在的窗口中,但是我点击并且列表从屏幕的左上angular下来,或者
当我单击并按住时,该列表将显示在正确的位置,但是随后必须将鼠标拖到左上angular才能进行select,就好像该列表仍然从此处放下。
做出select的唯一方法是使用向上/向下箭头键,即使如此,我仍然从(0,0)中删除列表。
在linux上,我从Jython中得到以下行为:
linux与windows中的窗口消息过程
确定来自不同设备的input
确定在C ++中是linux还是windows
任何关于为VS2008组织跨平台库的最佳方式的build议
在linux中创build一个跨平台的安装程序
点击并按住 ,列表下降。
当我向下移动鼠标时,列表项被突出显示,但它们大约有1.5行。 也就是说,直到鼠标在第三个项目的中途,第二个项目才会被突出显示。
释放鼠标button,列表消失,因为它应该,但原始项目仍然被选中,就像什么都没有发生。
同样,正确使用ComboBox的唯一方法是使用键盘,尽pipe我不能从列表中错误的位置得到同样的古怪。
这是我的Java SSCCE:
package foo; import javax.swing.*; import java.awt.*; public class Foo extends JPanel{ public Foo(){ super(new borderLayout()); String[] contents = {"Foo","bar","Baz"}; JComboBox combo = new JComboBox(contents); add(combo,borderLayout.PAGE_START); } private static voID BuildAndShow(){ JFrame mainWindow = new JFrame("Testing"); mainWindow.setDefaultCloSEOperation(JFrame.EXIT_ON_CLOSE); //Create and set up the content pane. JComponent contentPane = new Foo(); contentPane.setopaque(true); //content panes must be opaque mainWindow.setContentPane(contentPane); //display the window. mainWindow.pack(); mainWindow.setVisible(true); } public static voID main(String[] args) { SwingUtilitIEs.invokelater(new Runnable() { public voID run() { BuildAndShow(); } }); } }
这是我的Jython SSCCE:
from java.lang import Runnable from javax.swing import SwingUtilitIEs,JFrame,JComboBox from java.awt import borderLayout import time class Foo(Runnable): def run(self): mainWindow = JFrame('Test',defaultCloSEOperation = JFrame.EXIT_ON_CLOSE) mainWindow.setLayout(borderLayout()) mainWindow.add(JComboBox(["Foo","Baz"]),borderLayout.PAGE_START) mainWindow.visible = True if __name__ == "__main__": app = Foo() SwingUtilitIEs.invokelater(app) while True: time.sleep(5)
添加换行符到string,跨平台
加拿大交叉binutils到ARM
如何用phing删除符号链接?
如何在Mono中获得“友好”的串口名称并保持跨平台
跨平台C ++:使用本地string编码还是跨平台标准化?
终于真正得到了linux机器的物理访问,我一直在远程测试,一切正常。
所以事实证明,这个问题与SSH,XMing以及linux机器上的显示转发设置有关。
向任何花时间的人道歉事实证明是无法回答的问题!
总结以上是内存溢出为你收集整理的为什么从JComboBox中获取非常不同的行为,取决于平台(Windows / Linux)和语言(Java / Jython)全部内容,希望文章能够帮你解决为什么从JComboBox中获取非常不同的行为,取决于平台(Windows / Linux)和语言(Java / Jython)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)