setbounds-20

问题描述:setBounds什么意思 本篇文章给大家谈谈一个有趣的事情,以及一个有趣的事情,希望对各位有所帮助,不要忘了收藏本站喔。

JAVA setBounds中4个int参数的含义

setbounds-20的相关图片

前两个int 是矩形组件左上角那个点在容器中的坐标。后两个int 是矩形组件的宽度和高度。

setBounds

public void setBounds(int x,int y,int width,int height)移动组件并调整其大小。由 x 和 y 指定左上角的新位置,由 width 和 height 指定新的大小。

参数:

x - 组件的新 x 坐标。

y - 组件的新 y 坐标。

width - 组件的新 width。

height - 组件的新 heigh。

扩展资料:

首部 function Bounds(ALeft, ATop, AWidth, AHeight: Integer): TRect; $[Types.pas。

功能 返回左、上位置以及宽度、高度相应的矩形区域。

说明 <NULL>。

参考 <NULL>。

例子 Bevel1.BoundsRect := Bounds(SpinEdit1.Value, SpinEdit2.Value, SpinEdit3.Value, SpinEdit4.Value);。

例子 setBounds(100,200,500,600);。

是在屏幕左上角的焦点为0坐标,向右移动100个像素,向下移动200个像素,对话框宽。

为500个像素,高为600个像素。

参考资料来源:百度百科-Bounds。

深入探究frame和bounds的区别以及setbounds使用的相关图片

深入探究frame和bounds的区别以及setbounds使用

setBounds(int x, int y, int width, int height)。

前两个是组件左上角在容器中的坐标。

后两个是组件的宽度和高度

参数:

x - 组件的新 x 坐标

y - 组件的新 y 坐标

width - 组件的新 width。

height - 组件的新 height。

扩展资料:

INT函数将返回实数向下取整后的整数值。它的语法格式为INT (number),其中的number是需要进行取整的实数。例如INT( 8.6)的返回值为8,而INT(-8.6)的返回值为-9。TRUNC函数是将数字的小数部分截去,返回数字的整数部分。

语法格式为TRUNC(number,number_digits),其中number为需要截尾取整的数字,number_digits为指定取整精度的数字,默认为0。例如函数TRUNC(8.5)的返回值是8,而TRUNC(-8.5)的返回值为-8。

参考资料来源:百度百科-INT()函数。

java中关于setbounds的问题的相关图片

java中关于setbounds的问题

在iOS开发中经常遇到两个词Frame和bounds,本文主要阐述Frame和bound的区别,尤其是bound很绕,很难理解。

一、首先,看一下公认的资料

先看到下面的代码你肯定就明白了一些:

-(CGRect)frame{。

  return CGRectMake(self.frame.origin.x,self.frame.origin.y,self.frame.size.width,self.frame.size.height);。

-(CGRect)bounds{。

  return CGRectMake(0,0,self.frame.size.width,self.frame.size.height);。

很明显,bounds的原点是(0,0)点(就是view本身的坐标系统,默认永远都是0,0点,除非调用了setbounds函数),而frame的原点却是任意的(相对于父视图中的坐标位置)。

二、再看一下斯坦福iOS教程视频中的图片。

翻译如下:

frame: 该view在父view坐标系统中的位置和大小。(参照点是,父亲的坐标系统)

bounds:该view在本地坐标系统中的位置和大小。(参照点是,本地坐标系统,就相当于ViewB自己的坐标系统,以0,0点为起点)

center:该view的中心点在父view坐标系统中的位置和大小。(参照点是,父亲的坐标系统)

三、下面阐述一下frame和bound的区别。

frame就容易理解一些:frame的(frame.origin.x,frame.origin.y)就是相对于父坐标系的偏移量。

bounds稍微有点费解,稍不留神,想的多了,就会绕进去。每个view都有一个本地坐标系统。这个坐标系统作用比较重要,比如触摸的回调函数中的 UITouch里面的>坐标值都是参照这个本地坐标系统的坐标。当然bounds这个属性也是参照这个本地坐标系统来的。

其实本地坐标系统的关键就是要知道的它的原点(0,0)在什么位置(这个位置又是相对于上层的view的本地坐标系统而言的,最上层view就是 window它的本地坐标系统原点就是屏幕的左上角了)。

通过修改view的bounds属性可以修改本地坐标系统的原点位置。

所以,bounds的有这么一个特点:

它是参考自己坐标系,它可以修改自己坐标系的原点位置,进而影响到“子view”的显示位置。

四、demo论证

10

UIView *view1 = [[UIView alloc] initWithFrame:CGRectMake(20, 20, 200, 200)];。

[view1 setBounds:CGRectMake(-30, -30, 200, 200)];。

view1.backgroundColor = [UIColor redColor];。

[self.view addSubview:view1];//添加到self.view。

NSLog(@"view1 frame:%@========view1 bounds:%@",NSStringFromCGRect(view1.frame),NSStringFromCGRect(view1.bounds));。

UIView *view2 = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 100, 100)];。

view2.backgroundColor = [UIColor yellowColor];。

[view1 addSubview:view2];//添加到view1上,[此时view1坐标系左上角起点为(-30,-30)]。

NSLog(@"view2 frame:%@========view2 bounds:%@",NSStringFromCGRect(view2.frame),NSStringFromCGRect(view2.bounds));。

这段代码没什么特别的地方。view1加入view中,view2加入view1中。代码第二行,对view1进行了setBounds设置。注释和打开这行代码的效果如图:

[view1 setBounds:CGRectMake(-30, -30,200,200)];。

这行代码起到了:让view2的位置改变的作用。为何(-30,-30)的偏移量,却可以让view2向右下角移动呢?

这是因为setBounds的作用是:强制将自己(view1)坐标系的左上角点,改为(-30,-30)。那么view1的原点,自然就向在右下方偏移(30,30)。

上面代码控制台输出如下:

20140924132839203.jpg。

(log输出日志表明,每个新的view默认的bounds其实都是(0,0),且bounds的width和height都是跟frame一致)。

事情还没完

上面代码中view和bounds的大小都是一样的。如果view的frame和bounds不是一样大小,又会如何呢?

就上面的代码段,将view1的bounds改大!例如:

[view1 setBounds:CGRectMake(-30, -30, 250, 250)];。

20140924135352969.jpg。

log显示:view1的frame已经被修改了。这是因为setBounds的问题。

frame定义了一个相对父视图的一个框架(容器),bounds则是真实显示区域。如果,bounds比frame小了,可以放到框架(容器)里。如果bounds比frame大,感觉frame被“撑大”了。frame变成了{{25, 25}, {250, 250}}了。25是如何得出的?bounds比frame长,宽各大了50像素,那么四条边平衡一下,各溢出“25”像素。

五、结论

bounds的有以下两个特点:

1. 它可以修改自己坐标系的原点位置,进而影想到“子view”的显示位置。这个作用更像是移动原点的意思。

2. bounds,它可以改变的frame。如果bounds比frame大。那么frame也会跟着变大。这个作用更像边界和大小的意思。

可以推测一下,setBound第一个特性可以用于view的滑动,手势动作。第二个特性如何使用呢?从网上找到一个案例:可以将下图中cell拉伸:

代码如下,重写cell的layoutSubviews方法即可:

// MyCustomUITableViewCell.h。

- (void)layoutSubviews。

self.bounds = CGRectMake(self.bounds.origin.x,。

self.bounds.origin.y,。

self.bounds.size.width - 50,。

self.bounds.size.height);。

[super layoutSubviews];。

java gui注册界面设计的相关图片

java gui注册界面设计

//        jp1.setLayout(null);//将两个面板的布局管理器都设为空。

//        jp2.setLayout(null);。

屏蔽这两行就可以了

Java 小程序

这是我的界面

package client;。

import java.awt.Color;。

import java.awt.Dimension;。

import java.awt.Font;。

import java.awt.Toolkit;。

import java.awt.event.ActionEvent;。

import java.awt.event.ActionListener;。

import javax.swing.ButtonGroup;。

import javax.swing.ImageIcon;。

import javax.swing.JButton;。

import javax.swing.JFrame;。

import javax.swing.JLabel;。

import javax.swing.JOptionPane;。

import javax.swing.JPanel;。

import javax.swing.JPasswordField;。

import javax.swing.JRadioButton;。

import javax.swing.JTextField;。

public class Register extends JFrame implements ActionListener。

/**

*

*/

private static final long serialVersionUID = 4257580101437991396L;。

JPanel pnlRegister;。

JLabel lblUserName,lblGender,lblAge,img1,img2;。

JLabel lblPassword,lblConfirmPass,logoPosition;。

JTextField txtUserName,txtAge;。

JPasswordField pwdUserPassword,pwdConfirmPass;。

JRadioButton rbtnMale,rbtnFemale;。

ButtonGroup btngGender;。

JButton btnOk,btnCancel,btnClear;。

String strServerIp;。

//用于将窗口用于定位。

Dimension scrnsize;。

Toolkit toolkit=Toolkit.getDefaultToolkit();。

//构造方法

public Register(String ip)。

{

super("帐号注册");。

strServerIp=ip;。

pnlRegister=new JPanel();。

this.getContentPane().add(pnlRegister);。

lblUserName=new JLabel("用 户 名:");。

lblGender=new JLabel("性 别:");。

lblAge=new JLabel("年 龄:");。

lblPassword=new JLabel("密 码:");。

lblConfirmPass=new JLabel("确认密码:");。

txtUserName=new JTextField(30);。

txtAge=new JTextField(10);。

pwdUserPassword=new JPasswordField(30);。

pwdUserPassword.setEchoChar('*');。

pwdConfirmPass=new JPasswordField(30);。

pwdConfirmPass.setEchoChar('*');。

rbtnMale=new JRadioButton("男",true);。

rbtnFemale=new JRadioButton("女");。

btngGender=new ButtonGroup();。

btnOk=new JButton("确定(O)");。

btnOk.setMnemonic('O');。

btnOk.setToolTipText("保存注册信息");。

btnCancel=new JButton("返回(B)");。

btnCancel.setMnemonic('B');。

btnCancel.setToolTipText("返回登录窗口");。

btnClear=new JButton("清空(L)");。

btnClear.setMnemonic('L');。

btnClear.setToolTipText("清空注册信息");。

/* 该布局采用手动布局 *。

* setBounds设置组件位置 *。

* setFont设置字体、字型、字号 *。

* setForeground设置文字的颜色 *。

* setBackground设置背景色 *。

* setOpaque将背景设置为透明 */。

pnlRegister.setLayout(null); //组件用手动布局。

pnlRegister.setBackground(new Color(180,210,250));。

lblUserName.setBounds(30,70,120,30);。

txtUserName.setBounds(110,75,120,20);。

lblPassword.setBounds(30,95,100,30);。

pwdUserPassword.setBounds(110,100,120,20);。

lblConfirmPass.setBounds(30,120,100,30);。

pwdConfirmPass.setBounds(110,125,120,20);。

lblGender.setBounds(30,145,100,30);。

rbtnMale.setBounds(110,150,60,20);。

rbtnFemale.setBounds(190,150,60,20);。

lblAge.setBounds(30,170,100,30);。

txtAge.setBounds(110,175,120,20);。

btnOk.setBounds(10,210,80,25); 。

btnClear.setBounds(130,210,80,25);。

btnCancel.setBounds(245,210,80,25);。

Font fontstr=new Font("宋体",Font.PLAIN,12); 。

lblUserName.setFont(fontstr);。

lblGender.setFont(fontstr);。

lblPassword.setFont(fontstr);。

lblConfirmPass.setFont(fontstr);。

lblAge.setFont(fontstr);。

rbtnMale.setFont(fontstr);。

rbtnFemale.setFont(fontstr);。

txtUserName.setFont(fontstr);。

btnOk.setFont(fontstr);。

btnCancel.setFont(fontstr);。

btnClear.setFont(fontstr);。

lblUserName.setForeground(Color.BLACK);。

lblGender.setForeground(Color.BLACK);。

lblPassword.setForeground(Color.BLACK);。

lblAge.setForeground(Color.BLACK);。

lblConfirmPass .setForeground(Color.BLACK);。

rbtnMale.setForeground(Color.BLACK);。

rbtnFemale.setForeground(Color.BLACK);。

rbtnMale.setBackground(Color.white);。

rbtnFemale.setBackground(Color.white); 。

rbtnMale.setOpaque(false); 。

rbtnFemale.setOpaque(false);。

pnlRegister.add(lblUserName);。

pnlRegister.add(lblGender);。

pnlRegister.add(lblPassword);。

pnlRegister.add(lblConfirmPass);。

pnlRegister.add(lblAge);。

pnlRegister.add(txtAge);。

pnlRegister.add(txtUserName);。

pnlRegister.add(pwdUserPassword);。

pnlRegister.add(pwdConfirmPass);。

pnlRegister.add(btnOk);。

pnlRegister.add(btnCancel);。

pnlRegister.add(btnClear);。

pnlRegister.add(rbtnMale);。

pnlRegister.add(rbtnFemale);。

btngGender.add(rbtnMale);。

btngGender.add(rbtnFemale);。

//设置背景图片

ImageIcon icon1 = new ImageIcon(this.getClass().getResource("/icons/3.png"));。

img1=new JLabel(icon1);。

pnlRegister.add(img1);。

img1.setBounds(0, -20,340, 96); 。

ImageIcon icon2 = new ImageIcon(this.getClass().getResource("/icons/4.png"));。

img2=new JLabel(icon2);。

pnlRegister.add(img2);。

img2.setBounds(185, 90,200, 106); 。

this.setSize(340,270);。

this.setVisible(true);。

this.setResizable(false);。

this.setDefaultCloseOperation(EXIT_ON_CLOSE);。

//将窗口定位在屏幕中央

scrnsize=toolkit.getScreenSize();。

this.setLocation(scrnsize.width/2-this.getWidth()/2,。

scrnsize.height/2-this.getHeight()/2);。

//三个按钮注册监听

btnOk .addActionListener(this);。

btnCancel.addActionListener(this);。

btnClear .addActionListener(this);。

} //构造方法结束

class Register_Customer extends Object implements java.io.Serializable。

{

/**

*

*/

private static final long serialVersionUID = 6843334615403912646L;。

String custName;。

String custPassword;。

String age;。

String sex;。

String email;。

}

//按钮监听响应

public void actionPerformed(ActionEvent ae)。

{

Object source=new Object();。

source=ae.getSource();。

if (source.equals(btnOk)) //"确定"按钮。

{

register();。

}

if (source.equals(btnCancel)) //"返回"按钮。

{

new Login();。

//this.dispose();。

}

if (source.equals(btnClear)) //"清空"按钮。

{

txtUserName.setText("");。

pwdUserPassword.setText("");。

pwdConfirmPass.setText("");。

txtAge.setText("");。

}

} //actionPerformed()结束。

//////////"确定"按钮事件响应//////////。

public void register()。

{

//接受客户的详细资料

String custName = txtUserName.getText();。

String custPassword = pwdUserPassword.getText();。

String age = txtAge.getText();。

String sex = rbtnMale.isSelected()?"男":"女";。

//验证用户名是否为空

if(custName.length()==0)。

{

JOptionPane.showMessageDialog(null,"用户名不能为空"); 。

return; 。

}

//验证密码是否为空

if(custPassword.length()==0)。

{

JOptionPane.showMessageDialog(null,"密码不能为空"); 。

return; 。

}

//验证密码的一致性

if(!custPassword.equals(pwdConfirmPass.getText()))。

{

JOptionPane.showMessageDialog(null,"密码两次输入不一致,请重新输入"); 。

return;。

}

//验证年龄是否为空

if(age.length()==0)。

{

JOptionPane.showMessageDialog(null,"年龄不能为空"); 。

return; 。

}

//验证年龄的合法性

int age1=Integer.parseInt(txtAge.getText());。

if (age1<=0||age1>100){。

JOptionPane.showMessageDialog(null,"年龄输入不合法");。

return;

}

}

public static void main(String args[])。

{

new Register("127.0.0.1");。

}

} //class Register 结束。

原文地址:http://www.qianchusai.com/setbounds-20.html

rx580甜甜圈烤机,rx580一烤甜甜圈就黑屏

rx580甜甜圈烤机,rx580一烤甜甜圈就黑屏

E/A,easy是什么意思

E/A,easy是什么意思

displacement,空压机排气量 displacement

displacement,空压机排气量 displacement

modbus-RTU,MOdbus-rtu协议接口软件

modbus-RTU,MOdbus-rtu协议接口软件

parsing-120

parsing-120

lw/炸鸡配可乐图片,炸鸡配可乐下一句怎么说

lw/炸鸡配可乐图片,炸鸡配可乐下一句怎么说

259397,2593979726

259397,2593979726

Kenneth,kennethcole什么牌子

Kenneth,kennethcole什么牌子

掉鳞-120,掉鳞的鱼可以吃吗

掉鳞-120,掉鳞的鱼可以吃吗

琥珀的7大神奇功效,琥珀手镯和翡翠手镯哪个好

琥珀的7大神奇功效,琥珀手镯和翡翠手镯哪个好