java相对定位代码 java如何定位每个坐标点

Java 如何实现一个弹出JDialog并对它定位java相对定位代码我写java相对定位代码了一个方法用于计算Dialog相对于Framejava相对定位代码的位置,用了这个方法可以保证每次打开Dialog都在Frame的正中间并且不会超过屏幕范围 。如果你要求移动Frame同时移动Dialog就得靠多线程了,那部分代码自己写吧 。
private Point caculateLocation() {
Point ownerLocation = getOwner().getLocation();
Dimension ownerSize = getOwner().getSize();
//Get x and y by geometry relationship
double x = 0.5 * ownerSize.getWidth()
ownerLocation.getX() - 0.5 * dialogWidth;
double y = 0.5 * ownerSize.getHeight()
ownerLocation.getY() - 0.5 * dialogHeight;
int screenWidth = (int) Toolkit.getDefaultToolkit().getScreenSize().width;
int screenHeight = (int) Toolkit.getDefaultToolkit().getScreenSize().height;
//Make the dialog display in the area of screen
if (x1) {
x = 1;
}
if (y1) {
y = 1;
}
if (xscreenWidth - dialogWidth) {
x = screenWidth - dialogWidth;
}
if (yscreenHeight - dialogHeight) {
y = screenHeight - dialogHeight;
}
return new Point((int) x, (int) y);
}
这个方法应位于Dialog的子类,owner指的是指定的Frame,Toolkit为java.awt.Toolkit 。得到的Point值就是dialog的setLocation()的参数 。如果还有什么不懂可以给我发信息,为你解答
java gui中怎么用jpanel实现组件的绝对定位相对定位是利用布局管理器GridBagLayout() 来实现的GridBagLayout 布局是根据GridBagConstraints() 来设定的GridBagConstraints主要有8个重要参数需要掌握非别是
gridx,gridy——设置组件的位置,
gridx设置为GridBagConstraints.RELATIVE代表此组件位于之前所加入组件的右边 。
gridy设置为GridBagConstraints.RELATIVE代表此组件位于以前所加入组件的下面 。
建议定义出gridx,gridy的位置以便以后维护程序 。gridx=0,gridy=0时放在0行0列 。
gridwidth,gridheight——用来设置组件所占的单位长度与高度,默认值皆为1 。
你可以使用GridBagConstraints.REMAINDER常量,代表此组件为此行或此列的最后一个组件,而且会占据所有剩余的空间 。
weightx,weighty——用来设置窗口变大时,各组件跟着变大的比例 。
当数字越大,表示组件能得到更多的空间,默认值皆为0 。
anchor——当组件空间大于组件本身时,要将组件置于何处 。
有CENTER(默认值)、NORTH、NORTHEAST、EAST、SOUTHEAST、WEST、NORTHWEST选择 。
insets——设置组件之间彼此的间距 。
它有四个参数,分别是上,左 , 下,右,默认为(0,0,0,0) 。
ipadx,ipady——设置组件间距 , 默认值为0 。
GridBagLayout里的各种设置都必须通过GridBagConstraints,因此当我们将GridBagConstraints的参数都设置
好了之后,必须new一个GridBagConstraints的对象出来,以便GridBagLayout使用 。
构造函数:
GirdBagLayout()建立一个新的GridBagLayout管理器 。
GridBagConstraints()建立一个新的GridBagConstraints对象 。
GridBagConstraints(int gridx,int gridy,
int gridwidth,int gridheight,
double weightx,double weighty,
int anchor,int fill, Insets insets,
int ipadx,int ipady)建立一个新的GridBagConstraints对象 , 并指定其参数的值
下面是我的例程:
实现
import javax.swing.*;
import java.util.*;
import java.awt.*;
public class Example extends JFrame{
private void makeComponent(GridBagLayout gbLaout,GridBagConstraints constraints,Component component)
{
gbLaout.setConstraints(component, constraints);
add(component);
}
public static void main(String args[]) {
Example exp=new Example();
GridBagLayout gridbag = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
exp.setLayout(gridbag);
JButton jb1=new JButton("JButton1");
c.gridx=0;
c.gridy=0;
c.gridwidth=1;
c.gridheight=1;
c.weightx=1;
c.weighty=0;
c.anchor=GridBagConstraints.CENTER;
c.fill=GridBagConstraints.HORIZONTAL;
c.insets=new Insets(0,0,0,0);
c.ipadx=0;
c.ipady=0;
exp.makeComponent(gridbag,c,jb1);
JButton jb2=new JButton("JButton2");
c.gridx=1;
exp.makeComponent(gridbag,c,jb2);
JButton jb3=new JButton("JButton2");
c.gridx=2;
exp.makeComponent(gridbag,c,jb3);
JButton jb4=new JButton("JButton2");
c.gridx=3;
exp.makeComponent(gridbag,c,jb4);
JButton jb5=new JButton("JButton5");
c.gridx=0;
c.gridy=1;
c.gridheight=1;
c.gridwidth=4;
exp.makeComponent(gridbag,c,jb5);
JButton jb6=new JButton("JButton6");
c.gridx=0;
c.gridy=2;
c.gridwidth=3;
exp.makeComponent(gridbag,c,jb6);
JButton jb7=new JButton("JButton7");
c.gridx=3;
c.gridy=2;
c.gridwidth=1;
exp.makeComponent(gridbag,c,jb7);
JButton jb8=new JButton("JButton8");
c.gridx=0;
c.gridy=3;
c.gridwidth=1;
c.gridheight=2;
c.fill=GridBagConstraints.BOTH;
exp.makeComponent(gridbag,c,jb8);
JButton jb9=new JButton("JButton9");
c.gridx=1;
c.gridy=3;
c.gridwidth=3;
c.gridheight=1;
c.fill=GridBagConstraints.HORIZONTAL;
exp.makeComponent(gridbag,c,jb9);
JButton jb10=new JButton("JButton10");
c.gridx=1;
c.gridy=4;
c.gridwidth=3;
c.gridheight=1;
c.fill=GridBagConstraints.HORIZONTAL;
exp.makeComponent(gridbag,c,jb10);
exp.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
exp.setSize(500,500);
exp.setVisible(true);
}
}
java 相对路径问题 。在最前面加点的话就告诉file找的时候当前目录找不到java相对定位代码,就去相对的路径去找java相对定位代码,一般要相对路径的话都是加点,两个点点寻找的返回可能大些,但也值在项目目录里找,直接/的话,这个貌似要在web项目里使用,直接在普通的项目里可能不行,你可以试试不每个file的absolutepath输出一下看看都是什么结果
帮你找java相对定位代码了下别人写的java相对定位代码:
File类是用来构造文件或文件夹的类,在其构造函数中要求传入一个String类型的参数,用于指示文件所在的路径.以前一直使用绝对路径作为参数,其实这里也可以使用相对路径.使用绝对路径不用说,很容易就能定位到文件,那么使用了相对路径jvm如何定位文件的呢?
按照jdk Doc上的说法”绝对路径名是完整的路径名,不需要任何其他信息就可以定位自身表示的文件 。相反,相对路径名必须使用来自其他路径名的信息进行解释 。默认情况下 , java.io 包中的类总是根据当前用户目录来分析相对路径名 。此目录由系统属性 user.dir 指定,通常是 Java 虚拟机的调用目录.”
相对路径顾名思义,相对于某个路径,那么究竟相对于什么路径我们必须弄明白.按照上面jdk文档上讲的这个路径是”当前用户目录”也就是”java虚拟机的调用目录”.更明白的说这个路径其实是我们在哪里调用jvm的路径.举个例子:
假设有一java源文件Example.java在d盘根目录下,该文件不含package信息.我们进入命令行窗口,然后使用”d:”命令切换到d盘根目录下,然后用”javac Example.java”来编译此文件,编译无错后,会在d盘根目录下自动生成”Example.class”文件.我们在调用”java Example”来运行该程序.此时我们已经启动了一个jvm,这个jvm是在d盘根目录下被启动的,所以此jvm所加载的程序中File类的相对路径也就是相对这个路径的,即d盘根目录:D:\.同时” 当前用户目录”也是D:\.在System.getProperty(“user.dir”);系统变量”user.dir”存放的也是这个值.
我们可以多做几次试验,把”Example.class”移动到不同路径下,同时在那些路径下,执行”java Example”命令启动jvm,我们会发现这个”当前用户目录”是不断变化的,它的路径始终和我们在哪启动jvm的路径是一致的.
搞清了这些,我们可以使用相对路径来创建文件,例如:
File file = new File(“a.txt”);
File.createNewFile();
假设jvm是在”D:\”下启动的,那么a.txt就会生成在D:\a.txt;
此外,这个参数还可以使用一些常用的路径表示方法,例如”.”或”.\”代表当前目录,这个目录也就是jvm启动路径.所以如下代码能得到当前目录完整路径:
File f = new File(“.”);
String absolutePath = f.getAbsolutePath();
System.out.println(absolutePath);//D:\
最后要说说在eclipse中的情况:
Eclipse中启动jvm都是在项目根路径上启动的.比如有个项目名为blog,其完整路径为:D:\work\IDE\workspace\blog.那么这个路径就是jvm的启动路径了.所以以上代码如果在eclipse里运行,则输出结果为” D:\work\IDE\workspace\blog.”
Tomcat中的情况.
如果在tomcat中运行web应用,此时,如果我们在某个类中使用如下代码:
File f = new File(“.”);
String absolutePath = f.getAbsolutePath();
System.out.println(absolutePath);
那么输出的将是tomcat下的bin目录.我的机器就是” D:\work\server\jakarta-tomcat-5.0.28\bin\.”,由此可以看出tomcat服务器是在bin目录下启动jvm的.其实是在bin目录下的” catalina.bat”文件中启动jvm的.
java布局中有相对位置的概念么可以啊 如果布局模式设置为FlowLayout 则会从左向右依次添加 并居中
如果使用了BorderLayout分为东西南北中使用BorderLayout.EASTBorderLayout.WEST BorderLayout.CENTER 等等
如果使用了GridLayout则是框架布局 如计算器的布局new GridLayout(3,2)//3行2列 添加时会从左向右添加,第3 4个会在第2排,第5 6个会在第3排 依次类推
【java相对定位代码 java如何定位每个坐标点】关于java相对定位代码和java如何定位每个坐标点的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读