「java代码生成布局」java自定义布局
今天给各位分享java代码生成布局的知识,其中也会对java自定义布局进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java Swing JPanel 怎么修改默认布局
- 2、简述Java程序从编写到运行的基本步骤,并说明Java的基本工作原理
- 3、编写java程序,创建一个框架并将其布局管理其设置为FlowLayot,添加两个面板,每个面板包含三个按钮
- 4、android如下布局怎么用java动态生成
- 5、谁能告诉我安卓开发中怎样用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代码生成布局的信息别忘了在本站进行查找喔。
发布于:2022-11-22,除非注明,否则均为
原创文章,转载请注明出处。