编译报错,Exception in thread "main" java.lang.IllegalArgumentException: horizontalAlignment

我的程序能够编译成功,但是当运行时会出现Exception in thread "main" java.lang.IllegalArgumentException: horizontalAlignment的错误
package com.corejava.swing;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Cursor;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Label;

import javax.swing.*;

public class QqLogin extends JFrame {

//北部
//图片
JLabel jl1;

//南部
JButton jb1,jb2,jb3;
JPanel jp1;

//中部
JTabbedPane jtp;//选项卡窗格
JPanel jp2,jp3,jp4;

//用户名和密码
JLabel jl2,jl3,jl4,jl5;
//用户名文本框
JTextField jtf1;
//清楚密码按钮
JButton jb4;

//密码文本框
JPasswordField jpf1;

//隐身登陆和记住密码选项
JCheckBox jcb1,jcb2;

public static void main(String[] args) {
// TODO Auto-generated method stub

QqLogin qqlogin=new QqLogin();
}

//构造函数
public QqLogin()
{
//创建组件
jl2=new JLabel("QQ号码",Label.CENTER);
jl3=new JLabel("QQ密码",Label.CENTER);
jl4=new JLabel("忘记密码",Label.CENTER);
//设置字体样式
jl4.setFont(new Font("宋体",Font.PLAIN,16));
//设置字体颜色
jl4.setForeground(Color.blue);
jl5=new JLabel("<html><a>申请密码保护</a></html>",Label.CENTER);
jl5.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));

//输入号码框
jtf1=new JTextField();
//输入密码框
jpf1=new JPasswordField();
//按钮中加入图片
jb4=new JButton(new ImageIcon("images/clear.gif"));
//复选框
jcb1=new JCheckBox("记住密码");
jcb2=new JCheckBox("隐身登陆");

//北部
jl1=new JLabel(new ImageIcon("images/tou.gif"));

//南部
jp1=new JPanel();
jb1=new JButton(new ImageIcon("images/denglu.gif"));
jb2=new JButton(new ImageIcon("images/quxiao.gif"));
jb3=new JButton(new ImageIcon("images/xiangdao.gif"));

//中部
jtp=new JTabbedPane();
jp2=new JPanel();
jp3=new JPanel();
//给背景面板设置背景颜色
jp3.setBackground(Color.RED);
jp4=new JPanel();
jp4.setBackground(new Color(0,0,255));

//将面板添加到选项卡窗格上
jtp.add("QQ号码",jp2);
jtp.add("手机号码",jp3);
jtp.add("电子邮件",jp4);

//设置布局管理器
jp2.setLayout(new GridLayout(3,3));

//添加组件
jp1.add(jb1);
jp1.add(jb2);
jp1.add(jb3);

jp2.add(jl2);
jp2.add(jtf1);
jp2.add(jb4);
jp2.add(jl3);
jp2.add(jpf1);
jp2.add(jl4);
jp2.add(jcb1);
jp2.add(jcb2);
jp2.add(jl5);

//讲JPanel加入JFrame中
this.add(jp1,BorderLayout.SOUTH);
this.add(jl1,BorderLayout.NORTH);
this.add(jtp,BorderLayout.CENTER);

//设置窗体属性

ImageIcon icon=new ImageIcon("qq.gif");
this.setIconImage(icon.getImage());
this.setSize(350,240);
this.setLocation(200,200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//显示窗体
this.setVisible(true);

}

}

第1个回答  推荐于2018-05-09
Label.CENTER = SwingConstants.TOP
注意,只可以取这几个:LEFT, CENTER, RIGHT, LEADING , TRAILING

的确是有问题。
换成SwingConstants.CENTER就没问题了 。追问

具体怎么改?看的不是很明白

追答

//构造函数
public QqLogin()
{
//创建组件
jl2=new JLabel("QQ号码",SwingConstants.CENTER);
jl3=new JLabel("QQ密码",SwingConstants.CENTER);
jl4=new JLabel("忘记密码",SwingConstants.CENTER);
//设置字体样式
jl4.setFont(new Font("宋体",Font.PLAIN,16));
//设置字体颜色
jl4.setForeground(Color.blue);
jl5=new JLabel("申请密码保护",SwingConstants.CENTER);
。。。。。。

追问

谢谢

本回答被网友采纳
第2个回答  2012-03-17
jl2=new JLabel("QQ号码",Label.CENTER); 这个实例化方法的时候 不能用对象Label的属性,要用它实例的属性 改成jl2=new JLabel("QQ号码",jl2.CENTER);就可以了,其余地方也是一样即可^追问

已经改了啊还是一样的报错 Exception in thread "main" java.lang.IllegalArgumentException: horizontalAlignment还是这个错误

第3个回答  2012-03-17
nn
第4个回答  2017-11-30
jl2=new JLabel("QQ号码",Label.CENTER);
jl3=new JLabel("QQ密码",Label.CENTER);
jl4=new JLabel("忘记密码",Label.CENTER);
将Label.CENTER改为JLable就行了,我也是遇到这样的问题
第5个回答  2012-03-17
参数不对吧

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网