为什么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);
}
}
或者说中部应该怎么该才能完整正常显示 展开
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);
}
}
或者说中部应该怎么该才能完整正常显示 展开
1个回答
展开全部
因为你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);
}
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询