「java代码生成布局」java自定义布局

博主:adminadmin 2022-11-22 21:24:08 40

今天给各位分享java代码生成布局的知识,其中也会对java自定义布局进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

java Swing JPanel 怎么修改默认布局

1.布局首先要理清思路,那一个组件放在哪个组件里面,就如你的代码他们分别是 JFrame f中放置了JPanel center,而JPanel center中又放置了5个testPanel[] t = new testPanel[5];

也就是说,你的5个test_shu对象的位置由center容器的布局方式决定即你的代码22行处 private JPanel center = new JPanel(new FlowLayout());

这个布局方式决定,所以,而FlowLayout的布局方式的默认值是:

流式布局管理器把容器看成一个行集,好象平时在一张纸上写字一样,一行写满就换下一行。行高是用一行中的控件高度决定的。FlowLayout是所有 JApplet/JApplet的默认布局。在生成流式布局时能够指定显示的对齐方式,默认情况下是居中(FlowLayout.CENTER)

FlowLayout() //生成一个默认的流式布局,组件在容器里居中,每个组件之间留下5个像素的距离.

FlowLayout(int alinment) //可以设定每行组件的对齐方式.

FlowLayout(int alignment,int horz,int vert) //设定对齐方式并设定组件水平和垂直的距离.

当容器的大小发生变化时,用FlowLayout管理的组件会发生变化,其变化规律是:组件的大小不变,但是相对位置会发生变化.

所以要达到你的效果,只需要将

22行处的代码改成如下设置就可以了:

private JPanel center = new JPanel(new FlowLayout(FlowLayout.CENTER, 0, 0));

简述Java程序从编写到运行的基本步骤,并说明Java的基本工作原理

Java编译原理:

Java 虚拟机(JVM)是可运行Java 代码的假想计算机。只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该系统上运行。

一.Java源文件的编译、下载 、解释和执行

Java应用程序的开发周期包括编译、下载 、解释和执行几个部分。Java编译程序将Java源程序翻译为JVM可执行代码?字节码。这一编译过程同C/C++ 的编译有些不同。当C编译器编译生成一个对象的代码时,该代码是为在某一特定硬件平台运行而产生的。因此,在编译过程中,编译程序通过查表将所有对符号的引用转换为特定的内存偏移量,以保证程序运行。Java编译器却不将对变量和方法的引用编译为数值引用,也不确定程序执行过程中的内存布局,而是将这些符号引用信息保留在字节码中,由解释器在运行过程中创立内存布局,然后再通过查表来确定一个方法所在的地址。这样就有效的保证了Java的可移植性和安全 性。

运行JVM字节码的工作是由解释器来完成的。解释执行过程分三部进行:代码的装入、代码的校验和代码的执行。装入代码的工作由"类装载器"(class loader)完成。类装载器负责装入运行一个程序需要的所有代码,这也包括程序代码中的类所继承的类和被其调用的类。当类装载器装入一个类时,该类被放在自己的名字空间中。除了通过符号引用自己名字空间以外的类,类之间没有其他办法可以影响其他类。在本台计算机上的所有类都在同一地址空间内,而所有从外部引进的类,都有一个自己独立的名字空间。这使得本地类通过共享相同的名字空间获得较高的运行效率,同时又保证它们与从外部引进的类不会相互影响。当装入了运行程序需要的所有类后,解释器便可确定整个可执行程序的内存布局。解释器为符号引用同特定的地址空间建立对应关系及查询表。通过在这一阶段确定代码的内存布局,Java很好地解决了由超类改变而使子类崩溃的问题,同时也防止了代码对地址的非法访问。

随后,被装入的代码由字节码校验器进行检查。校验器可发现操作数栈溢出,非法数据类型转化等多种错误。通过校验后,代码便开始执行了。

Java字节码的执行有两种方式:

1.即时编译方式:解释器先将字节码编译成机器码,然后再执行该机器码。

2.解释执行方式:解释器通过每次解释并执行一小段代码来完成Java字节码程 序的所有操作。

通常采用的是第二种方法。由于JVM规格描述具有足够的灵活性,这使得将字节码翻译为机器代码的工作

具有较高的效率。对于那些对运行速度要求较高的应用程序,解释器可将Java字节码即时编译为机器码,从而很好地保证了Java代码的可移植性和高性能。

编写java程序,创建一个框架并将其布局管理其设置为FlowLayot,添加两个面板,每个面板包含三个按钮

lz 你好

具体代码如下:

import java.awt.*;

import javax.swing.*;

public class Test extends JFrame{

private JPanel panel_1,panel_2;

private JButton[] button_1,button_2;

public Test(){

super("Test");

button_1 = new JButton[3];

button_2 = new JButton[3];

panel_1  = new JPanel(new GridLayout(3,2));

panel_2  = new JPanel(new GridLayout(3,2));

for (int i = 0; i  3; i++) {

button_1[i] = new JButton("Panel_1:"+(i+1));

button_2[i] = new JButton("Panel_2:"+(i+4));

panel_1.add(button_1[i]);

panel_2.add(button_2[i]);

}

setLayout(new FlowLayout(FlowLayout.CENTER,5,30));

getContentPane().add(panel_1);

getContentPane().add(panel_2);

setLocation(400,150);

setSize(200,300);

setVisible(true);

setDefaultCloseOperation(3);

}

    public static void main(String[] args) {

     new Test();

    }

}

希望能帮助你哈

android如下布局怎么用java动态生成

代码如下:

package com.app;

import com.app.form.AutoCompleteActivity;

import com.app.form.ProgressActivity;

import com.app.form.RadioAndCheckboxActivity;

import com.app.form.RatingBarActivity;

import com.app.form.SeekBarActivity;

import com.app.form.SpinnerActivity;

import com.app.form.ToggleButtonActivity;

import com.app.list.ExpandableList1;

import android.app.Activity;

import android.content.Intent;

import android.os.Bundle;

import android.view.View;

import android.view.View.OnClickListener;

import android.view.ViewGroup.LayoutParams;

import android.widget.LinearLayout;

import android.widget.TextView;

/**

* 范例:五种布局方式的范例

* 1.该文件中没有用到XML形式的静态布局,而是动态布局

* @author Administrator

*/

public class MainActivity extends Activity implements OnClickListener {

//实例化一个10个TextView的数组

TextView tvArray[] = new TextView[20];

//实例化一个线性布局的参数

LinearLayout.LayoutParams lp1 = new LinearLayout.LayoutParams(

LayoutParams. FILL_PARENT, LayoutParams.FILL_PARENT);

LinearLayout.LayoutParams lp2 = new LinearLayout.LayoutParams(

LayoutParams. FILL_PARENT, LayoutParams.WRAP_CONTENT);

@Override

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

//实例化线性布局并设置垂直方向

LinearLayout lin1 = new LinearLayout(this);

lin1.setOrientation(LinearLayout. VERTICAL);

//创建n个TextView并设置ID 监听器等,最后添加到线性布局中

for (int i = 0; i 20; i++) {

tvArray[i] = new TextView(this);

tvArray[i].setId(i);

tvArray[i].setOnClickListener(this);

lin1.addView( tvArray[i], lp2 );

}

//设置各TextView的文本

tvArray[0].setText("表单控件-单选Radio和复选Checkbox" );

tvArray[1].setText("表单控件-下拉菜单Spinner" );

tvArray[2].setText("表单控件-自动完成AutoComplete" );

tvArray[3].setText("表单控件-进度条ProgressBar" );

tvArray[4].setText("表单控件-滑动条SeekBar" );

tvArray[5].setText("表单控件-评分RatingBar" );

tvArray[6].setText("表单控件-ToggleButton" );

tvArray[7].setText("复合控件-列表ListView" );

tvArray[8].setText("复合控件-折叠式列表ExpandableList" );

tvArray[9].setText("复合控件-网格视图GridView" );

tvArray[10].setText("复合控件-滚动视图ScrollView" );

setContentView(lin1); //此处从R.layout.XXX改成了某个View的实例

}

@Override

public void onClick(View v) {

Intent intent = new Intent();

if(v.getId()==0) {

intent.setClass(MainActivity. this, RadioAndCheckboxActivity.class );

} else if (v.getId()==1) {

intent.setClass(MainActivity. this, SpinnerActivity.class );

} else if (v.getId()==2) {

intent.setClass(MainActivity. this, AutoCompleteActivity.class );

} else if (v.getId()==3) {

intent.setClass(MainActivity. this, ProgressActivity.class );

} else if (v.getId()==4) {

intent.setClass(MainActivity. this, SeekBarActivity.class );

} else if (v.getId()==5) {

intent.setClass(MainActivity. this, RatingBarActivity.class );

} else if (v.getId()==6) {

intent.setClass(MainActivity. this, ToggleButtonActivity.class );

} else if (v.getId()==7) {

intent.setClass(MainActivity. this, ListsActivity.class );

} else if (v.getId()==8) {

intent.setClass(MainActivity. this, ExpandableList1.class );

} else if (v.getId()==9) {

intent.setClass(MainActivity. this, Grid.class);

} else if (v.getId()==10) {

intent.setClass(MainActivity. this, ScrollViewActivity.class );

}

startActivity(intent);

}

}

谁能告诉我安卓开发中怎样用java代码生成按钮并设置它的位置啊?

给你写个最简单的吧,其实和XML布局是一样的。都是在LinearLayout、RelativeLayout这些布局中加控件,不同的是java代码都是new 出来的对象。例子:

LinearLayout layout = new LinearLayout(context);

layout.setOrientation(LinearLayout.VERTICAL);

layout.setPadding(0, 0, 0, 0);

layout.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT));

Button btn = new Button(context);

LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);

params.setMargins(0, 0, 0, 0);

btn.setLayoutParams(params);

layout.addView(btn);

java代码生成布局的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java自定义布局、java代码生成布局的信息别忘了在本站进行查找喔。

The End

发布于:2022-11-22,除非注明,否则均为首码项目网原创文章,转载请注明出处。