⑴ java中如何设置在JFrame中控件的位置和大小
Java中通过布局管理器(LayoutManager)来布局控件。
常见的布局管理器如下:
BorderLayout:Frame和Dialog的默认布局管理器。其把面板分为上北、下南、左西、右东和中间,5个部分,在未指定控件大小的情况下,被加入的控件将会随着内容大小自动伸缩,随着窗口的放大缩小也相应的产生伸缩。
FlowLayout :按顺序布局控件。所有控件按照流水一样排列,若当前行放不下了,则自动排到下一行。按子控件的大小(getPreferedSize())在当前面板布局。
GridLayout :网格布局。该布局将所有控件按从左到右,从上到下的形式把控件以网格的形式排列出来。子控件会填满整个面板。
GridBagLayout :网格包布局。能布局复杂界面,但其使用也很复杂,一般不用。
null布局:即将布局管理器设置为null。此时,通过调用子控件的setBounds方法进行布局。
其他布局管理器。以上是Java内置的常用布局管理器,还有一些非官方的好用布局管理器:XYLayout(按大小和位置布局)、VerticalFlowLayout (纵向流水布局)、TableLayout(表格布局)。
一般的Java程序布局方式:用FlowLayout布局一些按钮,用BorderLayout嵌套多个面板。
⑵ java获取当前jframe窗口大小
Swing中没有提供直接获取的方法。
但是对于JFrame和JDialog,可以通过getContentPane()获取窗口的主面板,然后获得。
Container contentPane=myFrame.getContentPane();
// 注意只有窗口显示后getLocationOnScreen才可以调用,否则出错
Point contentPos = contentPane.getLocationOnScreen();// 在屏幕的坐标
Dimension size = contentPane.getSize(); // 可视区域的大小
⑶ 如何设置java控件的位置和大小
Java中通过布局管理器(LayoutManager)来布局控件。
常见的布局管理器如下:
BorderLayout:Frame和Dialog的默认布局管理器。其把面板分为上北、下南、左西、右东和中间,5个部分,在未指定控件大小的情况下,被加入的控件将会随着内容大小自动伸缩,随着窗口的放大缩小也相应的产生伸缩。
FlowLayout :按顺序布局控件。所有控件按照流水一样排列,若当前行放不下了,则自动排到下一行。按子控件的大小(getPreferedSize())在当前面板布局。
GridLayout :网格布局。该布局将所有控件按从左到右,从上到下的形式把控件以网格的形式排列出来。子控件会填满整个面板。
GridBagLayout :网格包布局。能布局复杂界面,但其使用也很复杂,一般不用。
null布局:即将布局管理器设置为null。此时,通过调用子控件的setBounds方法进行布局。
其他布局管理器。以上是Java内置的常用布局管理器,还有一些非官方的好用布局管理器:XYLayout(按大小和位置布局)、VerticalFlowLayout (纵向流水布局)、TableLayout(表格布局)。
一般的Java程序布局方式:用FlowLayout布局一些按钮,用BorderLayout嵌套多个面板。
⑷ java中为什么在frame中加的控件只有调整一下窗口大小才能显示出来
你可以添加一个JPanel控件,把其他控件放在该JPanel控件中
给你个实例:HelloWorld.java
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class HelloWorld {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
new HelloWorld();
}
HelloWorld(){
JFrame frame=new JFrame("Bai");
frame.setSize(300,200);//设置窗体大小
frame.setVisible(true);//设置窗体可见
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//设置关闭按钮
JPanel panel=new JPanel();//添加一个面板,把控件放在面板中
JTextField text=new JTextField();
text.setText("你好,很高兴认识你");
JLabel label=new JLabel("这是一个标签控件");
panel.add(text);
panel.add(label);
frame.add(panel);
}
}
⑸ java获取当前jframe窗口大小
jframe下有个方法是setresizable你可以试试..传入一个布尔值.true是可以改变大小.false是不能改变窗体大小..默认是true可以改变的.这个方法是继承自awt下的frame的
就是是否能叫用户修改窗体大小
setresizable(false);
⑹ java Frame 显示大小与设置的不同
// 窗口宽度= 内容面板宽+窗口左边框+窗口右边框
// 窗口高度= 内容面板高+窗口上边框+窗口下边框
每个操作系统的边框粗细可能不太一致,你可以先输出看看
参考代码
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
//该窗口继承自JFrame.
{
publicDemoFrame(){
setTitle("窗口");//窗口标题
setSize(500+8+8,500+31+8);//窗口大小
//窗口宽度=内容面板宽+窗口左边框+窗口右边框
//窗口高度=内容面板高+窗口上边框+窗口下边框
setLocationRelativeTo(null);//窗口居中
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//通常添加这行代码,点击窗口右下角的关闭时会结束程序
setVisible(true);
Insetsinsets=getInsets();//得到窗口的边界区域。
System.out.println("窗口边框上"+insets.top);//上
System.out.println("窗口边框下"+insets.bottom);//下
System.out.println("窗口边框左"+insets.left);//左
System.out.println("窗口边框右"+insets.right);//右
Dimensiondi=getContentPane().getSize();//内容面板的大小
System.out.println("内容面板宽度"+di.width);//宽
System.out.println("内容面板的高度"+di.height);//高
}
//main方法
publicstaticvoidmain(String[]args){
newDemoFrame();
}
}
⑺ java 中如何获取当前窗体大小
1、对于Frame,可以直接new 一个对象 f = new Frame()
2、通常获取窗口f两种方式是f.getsize(),该方法返回一个Dimension对象
3、可以根据dimension.getWidth 和 dimens.getHeight 获取宽和高
⑻ java的Frame中的窗体大小设置问题
下面这个程序就是将一个图片显示在窗体之前,当然,四周也不会显示出来
public class FirstFrame extends JFrame
{
FirstFrame(int time)
{
super("欢迎");
Container container = getContentPane();
JLabel jl = new JLabel(new ImageIcon("image/welcome.jpg"));//该标签在其显示区内垂直和水平居中对齐
container.add(jl, BorderLayout.CENTER);
setUndecorated(true); //禁用或启用此窗体的装饰,只有在窗体不可显示时才调用此方法
setVisible(true);
pack(); //调整此窗口的大小,以适合其子组件的首选大小和布局
Dimension screenSize =Toolkit.getDefaultToolkit().getScreenSize();//获取屏幕的大小,在具有多个显示屏的系统上,使用主显示屏
Dimension labelSize = jl.getPreferredSize();
setLocation(screenSize.width/2 - (labelSize.width/2),screenSize.height/2 - (labelSize.height/2));
final int pause = time;
final Runnable closerRunner = new Runnable()
{
public void run()
{
setVisible(false);
dispose();
}
};
Runnable waitRunner = new Runnable()
{
public void run()
{
try
{
Thread.sleep(pause);
SwingUtilities.invokeAndWait(closerRunner);//导致Runnable的run()在 AWT事件指派线程上同步执行
}
catch(Exception e){}
}
};
Thread waitThread = new Thread(waitRunner, "SplashThread");//run 方法被调用的对象,新线程的名称
waitThread.start();
}
public static void main(String args[])
{
new FirstFrame(1500);
try
{
Thread.sleep(1500);
}
catch(Exception e){}
}