为什么setBounds()不起作用呢?

importjava.awt.*;importjavax.swing.*;publicclassLoginextendsJFrame{JLabelbq1;//北部JBut... import java.awt.*;
import javax.swing.*;
public class Login extends JFrame{
JLabel bq1;//北部
JButton an1,an2; JPanel mb1;//南部
//中部
JPanel mb2;
JLabel bq2,bq3;
JTextField wbk;
JPasswordField mmk;

public static void main(String[] args){
Login lg=new Login();
}
public Login(){

bq2=new JLabel("用户名:",JLabel.CENTER);
bq2.setFont(new Font("隶书",Font.PLAIN,16));

bq3=new JLabel("密码:",JLabel.CENTER);
bq3.setFont(new Font("隶书",Font.PLAIN,16));

wbk=new JTextField();
mmk=new JPasswordField();

bq1=new JLabel(new ImageIcon("F://java/code/Test/GCD.jpg"));
mb1=new JPanel();//南部
an1=new JButton("登录");
an2=new JButton("退出");

mb2=new JPanel();
.

mb1.add(an1);
mb1.add(an2);

mb2.setLayout(null);
mb2.add(bq2);
bq2.setBounds(100, 200, 300, 100);
mb2.add(wbk);
mb2.add(bq3);
mb2.add(mmk);

this.add(mb1,BorderLayout.SOUTH);//将mb1加入到容器中 采用边界布局方式 将p1 居nan
this.add(bq1,BorderLayout.NORTH);
this.add(mb2,BorderLayout.CENTER);

ImageIcon tp1=new ImageIcon("F://java/code/Test/GCD.jpg");
this.setIconImage(tp1.getImage());
this.setTitle("欢迎使用");
this.setSize(700,400);
this.setLocationRelativeTo(null);
//this.setResizable(false);//?
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
}
}
或者说中部应该怎么该才能完整正常显示
展开
 我来答
紫薇参星
科技发烧友

推荐于2017-09-18 · 有一些普通的科技小锦囊
知道大有可为答主
回答量:5983
采纳率:92%
帮助的人:3599万
展开全部

因为你mb2 JPanel上设置了布局管理器为null,所以加到mb2上的控件都要设置Bounds大小,因为你只设了一个用户名的大小,所以它只显示用户名.要想完整正常显示只需要把加到mb2上的控件都设置Bounds大小,就行了.另外,我把你的Bounds数值和JFrame大小改了一下,为了好看一些.

完整的程序如下:

import java.awt.*;

import javax.swing.*;

public class Login extends JFrame{ 

 JLabel bq1;//北部 

 JButton an1,an2; 

 JPanel mb1;//南部 

 //中部 

 JPanel mb2; 

 JLabel bq2,bq3; 

 JTextField wbk; 

 JPasswordField mmk;

public static void main(String[] args){ 

 Login lg=new Login();

}

public Login(){

 bq2=new JLabel("用户名:",JLabel.CENTER); 

 bq2.setFont(new Font("隶书",Font.PLAIN,16));  

 bq3=new JLabel("密码:",JLabel.CENTER); 

 bq3.setFont(new Font("隶书",Font.PLAIN,16));  

 wbk=new JTextField(); 

 mmk=new JPasswordField();  

 bq1=new JLabel(new ImageIcon("F://java/code/Test/GCD.jpg")); 

 mb1=new JPanel();//南部 

 an1=new JButton("登录"); 

 an2=new JButton("退出");  

 mb2=new JPanel();  

 mb1.add(an1); 

 mb1.add(an2);  

 mb2.setLayout(null); 

 bq2.setBounds(10, 10, 70, 20); 

 mb2.add(bq2); 

 wbk.setBounds(100, 10, 90, 20); 

 mb2.add(wbk); 

 bq3.setBounds(10, 50, 70, 20); 

 mb2.add(bq3);    

 mmk.setBounds(100, 50, 90, 20);

 mb2.add(mmk);  

 this.add(mb1,BorderLayout.SOUTH);//将mb1加入到容器中   采用边界布局方式  将p1 居nan 

 this.add(bq1,BorderLayout.NORTH); 

 this.add(mb2,BorderLayout.CENTER);  

 ImageIcon tp1=new ImageIcon("F://java/code/Test/GCD.jpg"); 

 this.setIconImage(tp1.getImage()); 

 this.setTitle("欢迎使用"); 

 this.setSize(250,200); 

 this.setLocationRelativeTo(null); 

 //this.setResizable(false);//? 

 this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 

 this.setVisible(true);

 }

}
微测检测5.10
2023-07-11 广告
IEC62133与en62133的区别如下:1. 认证机构不同:IEC62133是国际的标准,它以国际通用的标准进行生产;而en62133采用的是欧盟的标准,它使用欧盟的生产需求进行生产。2. 宗旨不同:IEC62133的宗旨是促进电气、电... 点击进入详情页
本回答由微测检测5.10提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式