首页编程java编程java中setlayout是什么意思(java中的setLayout怎么用)

java中setlayout是什么意思(java中的setLayout怎么用)

编程之家2023-10-1293次浏览

各位老铁们,大家好,今天由我来为大家分享java中setlayout是什么意思,以及java中的setLayout怎么用的相关问题知识,希望对大家有所帮助。如果可以帮助到大家,还望关注收藏下本站,您的支持是我们最大的动力,谢谢大家了哈,下面我们开始吧!

java中setlayout是什么意思(java中的setLayout怎么用)

java中的setLayout怎么用

函数声明格式:public void setLayout(LayoutManager manager)

一般的用法:setLayout(new BorderLayout())//或FlowLayout...

随后调用add(...)即可。

java中setlayout是什么意思(java中的setLayout怎么用)

常用的有5种:FlowLayout、BorderLayout、GridLayout、CardLayout、GridBagLayout。

一般说都要放在构造函数或初始化函数中,设置后再加入控件。

setBorder()是使用Border边框,Border是特殊的Swing组件,为Swing组件提供不同的边框修饰。

java中setlayout是什么意思(java中的setLayout怎么用)

setLayout()是布局管理器,让容器管理Swing组件的摆放位置的。

扩展资料:

下面是几个使用setLayout()方法实现FlowLayout的例子:

setLayout(new FlowLayout(FlowLayout.RIGHT,20,40));

setLayout(new FlowLayout(FlowLayout.LEFT));

setLayout(new FlowLayout());

参考资料来源:百度百科-setLayout

java中帮我看看每条代码的意思,顺便写下来,高分求助!

import java.awt.*;//导入awt包

import java.awt.event.ActionEvent;//导入awt.event.ActionEvent包

import java.awt.event.ActionListener;//导入java.awt.event.ActionListener包

import javax.swing.*;//导入javax.swing包

public class abc{//定义Calculator类

private JFrame jf;//定义JFrame jf

private JButton[] jbs;//定义数组按钮jbs

private JTextField jtf;//定义 TextField

private JButton clear;//定义清除按钮

private double num1,num2,jieguo;//定义三个double类型的变量

private char c;//定义字符型变量c

//构造方法实例化属性

public abc(){//构造函数开始

jf=new JFrame("我的计算器v1.0");//JFrame属性赋值

jtf=new JTextField(20);//

clear=new JButton("clear");//创建clear按钮

jbs=new JButton[16];//创建16个按钮

String str="123+456-789*0./=";//创建字符串也就是每个按钮的文本

for(int i=0; i<str.length(); i++){//对字符串进行遍历截取字符

jbs[i]=new JButton(str.charAt(i)+"");//根据字符创建按钮并将按钮放入jbs集合

}

init();//调用init方法

addEventHandler();//调用addEventHandler方法

showMe();//调用showMe方法

}

//布局图形界面

public void init(){

JPanel jp1=new JPanel();//创建一个面板

jp1.add(jtf);//先将文本框添加到面也就是显示结果和输入数字的文本框

JPanel jp2=new JPanel();//创建一个面板2

jp2.setLayout(new GridLayout(4,4));//设定该面板为4行4列布局

for(int i=0; i<16; i++){//循环jbs和

jp2.add(jbs[i]);//将按钮一个个取出来放到面板2里面

}

JPanel jp3=new JPanel();//创建面板3

jp3.add(clear);//添加清楚按钮

jf.add(jp1,BorderLayout.NORTH);//这三句是将创建三个面板放入大的面板中

jf.add(jp2,BorderLayout.CENTER);

jf.add(jp3,BorderLayout.SOUTH);

}

public void addEventHandler(){

ActionListener lis=new ActionListener(){

//点击触发事件

public void actionPerformed(ActionEvent e){

JButton jb=(JButton)e.getSource();//获取到事件源也就是被点击的哪个按钮

String str=jb.getText().trim();//把字符串的首尾空格去掉!

if("0123456789.".indexOf(str)!=-1){//如果是数字或点号

jtf.setText(jtf.getText()+str);//将文本框的内容加上当前的输入的数字

return;

}

if("+-*/".indexOf(str)!=-1){//如果是加减乘除

num1=Double.parseDouble(jtf.getText());//先获取文本框的值并保存到num1

jtf.setText("");//然后将文本框清空

c=str.charAt(0);//获取操作符号并保存到c

jtf.setText("");//这里重复操作垃圾代码

return;

}

if(str.equals("=")){//如果输入的等于操作

num2=Double.parseDouble(jtf.getText());//获取文本框的值保存到num2

switch(c){//判断之前输入的符号

case'+': jieguo=num1+num2;break;//这里的四个就是做加减乘除操作要点就是讲之前保存的num1和 num2获取出来进行操作将结果保存 jieguo

case'-': jieguo=num1-num2;break;

case'*': jieguo=num1*num2; break;

case'/': jieguo=num1/num2;break;

}

jtf.setText(Double.toString(jieguo));//把jieguo的值付给当前文本框

return;

}

if(e.getActionCommand().equals("clear")){//如果按时清除按钮

jtf.setText("");//情况文本框内容不过这里也有bug个人认为应该把num1和 num2也清0

return;

}

}

};

//对jbs集合进行遍历

for(int i=0; i<jbs.length; i++){

//给按钮添加事件

jbs[i].addActionListener(lis);

}

//对清除按钮添加事件

clear.addActionListener(lis);//

}

public void showMe(){

jf.pack();

jf.setVisible(true);//设置可见

jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public static void main(String[] args){

new CaculatorA();

}

}

JFrame其实我没用过,但这是简单的计算器实现,应该比较好理解

java 里面的Jpanel.setlayout(null)

这个问题如果对BorderLayout的原理不理解是很难解释的

出现这个问题的主要原因是由于jpn的布局方式,假设一个容器的布局方式设置为null的话,如果没有显示的调用setPreferSize()方法,那么的首选大小为(0,0)。根据BorderLayout,North组件的高度受到其本身的PreferSize的Heigth控制,由于这里是0,所以布局计算出来jpn的高度为0,展示出来就看不到jpn,所以就看不见。

如果为center事情就完全不一样了,可以看出中间组件高度,整个高度-TOP的PreferSize-Bottom的Prefersize,宽度计算原理一样。本例中,BorderLayout的组件上下左右均无组件,所以中间组件的大小为整个容器的大小。所以是把jpn平铺在整个容器中,所以是可见的。

说了这么多,不知道你能否明白。还有什么不懂,可以参见BorderLayout的源代码中的layoutContainer方法。

java中setBorder和setFocusable是什么意思

这两个方法是swing组件的方法,setBorder设置组件的边框,如大小、是否透明、其他特殊效果。setFocusable设置组件是否可被选中,如文本框不允许复制内容,则setFocusable(false),不能被选中,就不可以复制。

setBorder(Border border)设置组件的边框,Border对象负责定义组件的 insets(直接对组件重写所有 insets设置),并且可选地呈现这些 insets

范围内的边框装饰。要为 swing组件创建有装饰的和无装饰的区域(例如边距和填充),应该使用边框(而不是

insets)。在单个组件中可使用复合边框来嵌套多个边框。

setFocusable(boolean focusable)表明此 Component是否可以获得焦点。

关于java中setlayout是什么意思,java中的setLayout怎么用的介绍到此结束,希望对大家有所帮助。

java中下标是什么意思?java中的下标值是什么意思java pid hprof是什么?hprof是什么文件能删不