vb中的坐标和JAVA中的坐标和大小是否相同,例如VB中有一个窗口form1,里面有一个text1,那么我用这个两个控件共用的四个属性(Top,Left,Width,Height)的值分别放在JAVA中,Java里我把面板布局设置为空,用setBounds(x,y,w,h)来放控件,但是控件的大小和坐标全都对不上,大家帮我解决一下啊!

解决方案 »

  1.   

    JAVA中不知道,
    VB中默认的坐标是缇,是个绝对单位,和屏幕大小和分辨率无关。
    缇是打印机的一磅的 1/20(1,440 缇等于一英寸;567 缇等于一厘米)。

    X/TwipsPerPixelX
    Y/TwipsPerPixelY
    可以得到以像素为单位的坐标
      

  2.   

    两种语言中的坐标是不同的。
    vb坐标系统默认使用单位twip,java默认使用单位Pixel
    另外vb中top=0是标题栏下面开始,java中top=0是标题栏上面开始
    vb中可以通过ScalModal改变缺省坐标系
      

  3.   

    X/Screen.TwipsPerPixelX
    Y/Screen.TwipsPerPixelY
      

  4.   

    因为VB中默认的度量单位是一个叫“缇”的东东用下面这条语句把VB的默认度量单位改成象素再取它的值出来放到JAVA里应该就可以了Me.ScaleMode = vbPixels这里的Me是窗体本身,ScaleMode属性用来改变对象的度量单位
      

  5.   

    大家说的话都好复杂啊,有没有实际例子说明一下,就如我题目中的form1和text1,要进行怎么样的转换才可以把它的坐标和大小应用到JAVA上!(最好有一点代码)
      

  6.   

    各位,我已经试过viena(维也纳nn-实心木头人)的语句,不行啊,总是有点怪怪的, blueswind8306() 我也试过了,都是不行, blueswind8306() 那个不能改变控件大小的值,只能改变坐标的值,如果和viena(维也纳nn-实心木头人)的语句一齐用,都是不行!
      

  7.   

    Debug.Print Text1.Left; Tab; Text1.Top; Tab; Text1.Width; Tab; Text1.Height; Tab;Me.ScaleMode = vbPixels
        
    Debug.Print Text1.Left; Tab; Text1.Top; Tab; Text1.Width; Tab; Text1.Height; Tab;第一行Debug后输出的值是以缇为单位的,也是VB的默认值。
    第三行Debug后输出的值是以象素为单位的,把这四个值用在JAVA里就可以了
      

  8.   

    ok,成功了,多谢大家,原来刚才我将top和left写错顺序了,我现在想改回VB的默认单位,应该将Me.ScaleMode =  ?  才可以把单位设置为vb默认的缇呢?
      

  9.   

    Me.ScaleMode=VbTwips是缇建议你看看MSDN里面写的很清楚的