1: 布局分析 典型的边界布局(BorderLayout) 最顶上一排组件是1个JPanel. 中间的是文本域/文本框
2:分析需要的组件: 标签 , 文本框,组合框, 按钮. 建议中央的文本框 使用 文本域来实现, 因为文本域可以多行显示
效果图
参考代码
import java.awt.*import java.awt.event.*
import javax.swing.*
public class JTFDemo extends JFrame implements ActionListener{
JTextField jtfName,jtfAge//文本框
JTextArea jta//文本域
JButton jb1//按钮
JComboBox<String> jcb//组合框
final String NEW_LINE=System.getProperty("line.separator")//得到本系统的换行符
public JTFDemo() {
// 最顶上的组件
JPanel jp = new JPanel()
JLabel jl1 = new JLabel("姓名")
jtfName = new JTextField(6)
JLabel jl2 = new JLabel("性别")
jcb = new JComboBox<>(new String[] {"男","女"})
JLabel jl3 = new JLabel("年龄")
jtfAge = new JTextField(6)
jb1 = new JButton("确定")
jb1.addActionListener(this)
jp.add(jl1)
jp.add(jtfName)
jp.add(jl2)
jp.add(jcb)
jp.add(jl3)
jp.add(jtfAge)
jp.add(jb1)
add(jp,BorderLayout.NORTH)//设置jp面板在窗口的北面
//中间的组件
JPanel jpc = new JPanel()
jta = new JTextArea(7,30)
jta.setLineWrap(true)//自动换行
JScrollPane jsp = new JScrollPane(jta)//滚动面板,会在需要时显示滚动条
jpc.add(jsp)
add(jpc,BorderLayout.CENTER)// 设置jpc.在窗口的中央 , BorderLayout.CENTER可以省略
//窗口属性设置
setTitle("个人信息录入器")// 标题
setSize(380, 230)// 窗口大小
setLocationRelativeTo(null)// 窗口居中
setDefaultCloseOperation(EXIT_ON_CLOSE)// 窗口点击关闭时,退出程序
setVisible(true)// 窗口可见
}
public static void main(String[] args) {
new JTFDemo() //创建窗口并显示
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==jb1) {
String name =jtfName.getText().trim()//得到文本框的文字并去掉首尾的空格
if(name.equals("")) {
JOptionPane.showMessageDialog(this, "Sorry! 姓名不能为空!请填写姓名~")
return
}
String s_age = jtfAge.getText().trim()
int age=0
try {
age = Integer.parseInt(s_age)
}catch (Exception ex) {
JOptionPane.showMessageDialog(this, "Sorry! 年龄文本框请输入整数.")
return
}
String info = name+","+jcb.getSelectedItem()+","+age
jta.append(info+NEW_LINE)//添加文字
//jta.setText(info)//设置文字 ,会覆盖之前的文字
//reset() //重置文本框 等组件
}
}
private void reset() {
jtfName.setText("")//重置内容为""
jcb.setSelectedIndex(0)//重置组合框的选择为第0个
jtfAge.setText("")
}
}
性别怎么用复选框呀?难道一个人还能有两种性别?我感觉应该用单选按钮(JRadioButton )。当然要用JRadioButton 的话就离不开ButtonGroup。你new两个JRadioButton,一个男一个女,然后将两个JRadioButton 放到ButtonGroup中。这样这两个单选按钮就是互斥的了,然后你在把两个按钮放到你的面板上就能显示了/** 导入所需的包
*/
import javax.swing.*
public class Show {
public static void main(String args[]) {
JFrame frame=new JFrame("单选按钮实例") //创建窗口对象
JPanel panel=new JPanel()//创建面板对象
ButtonGroup bg=new ButtonGroup() //创建单选按钮组
JRadioButton male=new JRadioButton("男")//创建单选按钮
JRadioButton female=new JRadioButton("女")
bg.add(male) //把单选按钮添加到组中
bg.add(female)
panel.add(male)//把按钮添加到面板中
panel.add(female)
frame.getContentPane().add(panel) //获取窗口的内容面板,将自定义面板添加进去
frame.setSize(220,200) //设置窗口大小
frame.setVisible(true) //显示窗口
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE) //设置关闭窗口 *** 作
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)