「java系统layout」java系统源代码

博主:adminadmin 2022-12-30 22:30:09 929

本篇文章给大家谈谈java系统layout,以及java系统源代码对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

Java的layout用法?最好有代码举例说明

swing组件有自己默认的布局方式。JFrame是BorderLayout,JPanel是FlowLayout。如果想把JPanel换成其它布局方式,做成BorderLayout可以这样做: JPanel jp = new JPanel(new BorderLayout());,做成GridLayout可以这样做: JPanel jp = new JPanel(new GridLayout(2,1,1,1));。其中FlowLayout, GridLayout和BorderLayout这三种布局方式是最常用的,其它的布局如BoxLayout,CardLayout用的相对较少,请参考相关文档

android开发中java开发文件和layout是如何对应的

一般使用Activity都是setContentView(R.layout.main) , main就是layout下的布局。

当然这不是绝对的,也有其他地方使用layout,你可以使用搜索功能查找,例如上面的布局,你可以搜索R.layout.main关键字。

关于java 中的 GridLayout设置问题

你的JPanel可以用BorderLayout啊

上面的文本域,可以被JScrollPane包裹啊,

然后这个pane就加到BorderLayout.CENTER

下面的按钮就加到BorderLayout.SOUTH

这样就刚刚好了,用布局要看情况来选择合适的布局。

还是跟你写好了吧,说都白说了

import java.awt.BorderLayout;

import java.awt.FlowLayout;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JPanel;

import javax.swing.JScrollPane;

import javax.swing.JTextArea;

public class JButtonTest extends JFrame

{

private static final long serialVersionUID = 1L;

public JButtonTest ()

{

setTitle ("tester");

setSize (300, 300);

setLayout (new BorderLayout ());

setLocationRelativeTo (null);

setResizable (false);

setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);

}

private void addComponents ()

{

JTextArea area = new JTextArea ();

JScrollPane scrollPane = new JScrollPane (area);

JButton button = new JButton ("图书推荐");

add (scrollPane, BorderLayout.CENTER);

JPanel panel = new JPanel (new FlowLayout (FlowLayout.CENTER));

panel.add (button);

add (panel, BorderLayout.SOUTH);

}

public static void main ( String[] args )

{

JButtonTest tester = new JButtonTest ();

tester.addComponents ();

tester.setVisible (true);

}

}

android src中.java、layout中.xml和AndroidManifest.xml文件是通过什么联系起来的?起什么作用?

简单说来就是映射。

你可以看到一个正常的android工程下面有个gen文件夹,其中有个包名.R.java,就类似于map的key-value,R.java中就是存放了一个个key值,比如R.drawable.a就对应了res/drawable/a.png文件,那么我们通过此key就可以获得此图片文件的路径,通过加载图片的方法加载为图片,当然有人有疑惑为什么不加载res/drawable-hdpi/a.png,这个是框架层或者底层读取机器的属性(比如分辨率、密度信息)分辨出究竟加载哪个文件夹下面的文件。

因为同属于一个包,有规范的文件夹命名方式,如果你将values文件夹换成valuess,那么就会报错,这个就规定了路径是写死的,所以我们就可以通过id获取写死的路径下面的文件加载。

对于AndroidManifest.xml中加载res中的资源的原理,跟src中的.java如何加载res中的文件是一个意思。

但是AndroidManifest.xml如何加载src中的.java,看图片,这是一个apk中包含的文件,classes.dex是所有.java文件编译过后组合的一个class文件集合,包括R.java编译过后的class文件,resources.arsc中放的是匹配信息,就相当于map信息,哪个key(就是id)对应哪个value。

程序启动的时候,先读取AndroidManifest.xml文件,知道包名,那么此程序的路径就无所遁形,AndroidManifest.xml中有些R.drawable.icon的id,它是先读取classes.dex中的R class文件,然后根据匹配表resources.arsc知道目标文件是在哪儿,那么就可以加载了。 当然classes.dex中某个控件也想加载资源,那么方式是一样的。

java layout种类和用途。要详细

建议复杂布局使用GridBagLayout,虽然操作比较复杂,但是稍微研究下,可以给你的GUI设计出别样风格

GridBagLayout的使用:是java中最有弹性但也是最复杂的一种版面管理器。它只有一种构造函数,但必须配合

GridBagConstraints才能达到设置的效果。

GridBagLayout的类层次结构图:

java.lang.Object

--java.awt.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对象

,并指定其参数的值。

参数说明:

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使用。

例子:

GridBagLayoutDemo.java

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class GridBagLayoutDemo{

public GridBagLayoutDemo(){

JButton b;

GridBagConstraints c;

int gridx,gridy,gridwidth,gridheight,anchor,fill,ipadx,ipady;

double weightx,weighty;

Insets inset;

JFrame f=new JFrame();

GridBagLayout gridbag=new GridBagLayout();

Container contentPane=f.getContentPane();

contentPane.setLayout(gridbag);

b=new JButton("first");

gridx=0;

gridy=0;

gridwidth=1;

gridheight=1;

weightx=10;

weighty=1;

anchor=GridBagConstraints.CENTER;

fill=GridBagConstraints.HORIZONTAL;

inset=new Insets(0,0,0,0);

ipadx=0;

ipady=0;

c=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor,

fill,inset,ipadx,ipady);

gridbag.setConstraints(b,c);

contentPane.add(b);

b=new JButton("second");

gridx=1;

gridy=0;

gridwidth=2;

gridheight=1;

weightx=1;

weighty=1;

anchor=GridBagConstraints.CENTER;

fill=GridBagConstraints.HORIZONTAL;

inset=new Insets(0,0,0,0);

ipadx=50;

ipady=0;

c=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor,

fill,inset,ipadx,ipady);

gridbag.setConstraints(b,c);

contentPane.add(b);

b=new JButton("third");

gridx=0;

gridy=1;

gridwidth=1;

gridheight=1;

weightx=1;

weighty=1;

anchor=GridBagConstraints.CENTER;

fill=GridBagConstraints.HORIZONTAL;

inset=new Insets(0,0,0,0);

ipadx=0;

ipady=50;

c=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor,

fill,inset,ipadx,ipady);

gridbag.setConstraints(b,c);

contentPane.add(b);

b=new JButton("fourth");

gridx=1;

gridy=1;

gridwidth=1;

gridheight=1;

weightx=1;

weighty=1;

anchor=GridBagConstraints.CENTER;

fill=GridBagConstraints.HORIZONTAL;

inset=new Insets(0,0,0,0);

ipadx=0;

ipady=0;

c=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor,

fill,inset,ipadx,ipady);

gridbag.setConstraints(b,c);

contentPane.add(b);

b=new JButton("This is the last button");

gridx=2;

gridy=1;

gridwidth=1;

gridheight=2;

weightx=1;

weighty=1;

anchor=GridBagConstraints.CENTER;

fill=GridBagConstraints.HORIZONTAL;

inset=new Insets(0,0,0,0);

ipadx=0;

ipady=50;

c=new GridBagConstraints(gridx,gridy,gridwidth,gridheight,weightx,weighty,anchor,

fill,inset,ipadx,ipady);

gridbag.setConstraints(b,c);

contentPane.add(b);

f.setTitle("GridBagLayout");

f.pack();

f.setVisible(true);

f.addWindowListener(

new WindowAdapter(){

public void windowClosing(WindowEvent e){

System.exit(0);

}

}

);

}

public static void main(String[] args){

new GridBagLayoutDemo();

}

}

关于java系统layout和java系统源代码的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。