建议题主先画出基本界面,随后有问题再交流,先用基本的Swing组件画出界面
用Swing,JMenuBar,JMenu,JMenuItem等类实现菜单。
主窗口菜单界面
package java3.T9;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.KeyStroke;
/*
* 下拉菜单:
* 1.菜单条(JMenuBar):菜单条有多个子菜单
* 2.子菜单(JMenu):子菜单可以有多个菜单项
* 3.菜单项(JMenuItem)
* 菜单事件:
* ActionListener
*
* 3种对话框:
* 1.(警告对话框)showMessageDialog
* 2.(确认对话框)showConfirmDialog
* 3.(输入对话框)showInputDialog
* */
public class MenuDemo extends JFrame implements ActionListener{
JMenuBar menuBar;
JMenu mFile,mEdit;
JMenuItem miNew,miOpen,miSave,miExit;
JMenuItem miCut,miCopy,miPaste;
public MenuDemo() {
super("菜单演示");
//创建菜单项
miNew = new JMenuItem("新建");
// miNew.setMnemonic(KeyEvent.VK_N);
miNew.setAccelerator(KeyStroke.getKeyStroke('N', 8));
miOpen = new JMenuItem("打开");
miSave = new JMenuItem("保存");
miExit = new JMenuItem("退出");
miNew.addActionListener(this);
miExit.addActionListener(this);
//创建子菜单
mFile = new JMenu("文件");
//把菜单项添加到子菜单
mFile.add(miNew);
mFile.add(miOpen);
mFile.add(miSave);
//添加分隔条
mFile.addSeparator();
mFile.add(miExit);
miCut = new JMenuItem("剪切");
miCopy = new JMenuItem("拷贝");
miPaste = new JMenuItem("粘贴");
mEdit = new JMenu("选项");
mEdit.add(miCut);
mEdit.add(miCopy);
mEdit.add(miPaste);
//创建菜单条
menuBar = new JMenuBar();
//把子菜单添加到菜单条
menuBar.add(mFile);
menuBar.add(mEdit);
//菜单条添加到窗口
setJMenuBar(menuBar);
setSize(500,400);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
}
public static void main(String[] args) {
new MenuDemo();
}
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource()==miExit) {
//警告对话框
// JOptionPane.showMessageDialog(null, "退出程序");
//确认框
/*控制按钮选项:
* 2个按钮:OK_CANCEL_OPTION
* 3个按钮:YES_NO_CANCEL_OPTION
* 点击结果:
* 1.OK_OPTION点击了OK按钮
* 2.CANCEL_OPTION:点击取消按钮
* 3.YES_OPTION:点击了YES按钮
* 4.NO_OPTION:点击了NO按钮
* */
if(JOptionPane.showConfirmDialog(null, "关闭确认","标题",JOptionPane.OK_CANCEL_OPTION)== JOptionPane.OK_OPTION) {
System.exit(0);
}
}else if(e.getSource()==miNew) {
//输入对话框
//str获取输入框的值
// String str = JOptionPane.showInputDialog("请输入一个数字", "1");
// JOptionPane.showMessageDialog(null, str);
new 学生注册();
}
}
}
学生注册界面
package java3.T9;
import java.awt.Color;
import java.awt.Font;
import java.awt.Image;
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.JCheckBox;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JRadioButton;
import javax.swing.JScrollBar;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JTextField;
/*
* Swing所在的包:java.swing
* 1.常用组件的使用
* */
public class 学生注册 extends JFrame implements ActionListener{
//姓名,年龄
JTextField txtUserName,txtAge; //文本框
//性别
JRadioButton rbMale,rbRemale; //多选框
//兴趣爱好
JCheckBox cbFootball,cbBasketBall,cbNet; //多选框
//备注
JTextArea txtRemark; //文本区域框
//注册,关闭
JButton btnSave,btnClose; //按钮
public 学生注册() {
super("学生注册");
//设置布局为绝对布局
setLayout(null);
JLabel lblUserName,lblAge,lblSex,lblHover,lblRemark;
lblUserName = new JLabel("姓名",JLabel.RIGHT);
txtUserName = new JTextField(20); //默认显示的字符数
//设置控件在窗口的位置
lblUserName.setBounds(80, 50, 100, 20);
txtUserName.setBounds(180, 50, 200, 20);
//添加控件到窗口指定位置显示
add(lblUserName);
add(txtUserName);
lblAge = new JLabel("年龄",JLabel.RIGHT);
txtAge = new JTextField(20);
lblAge.setBounds(80, 100, 100, 20);
txtAge.setBounds(180, 100, 200, 20);
add(lblAge);
add(txtAge);
lblSex = new JLabel("性别",JLabel.RIGHT);
rbMale = new JRadioButton("男");
rbRemale = new JRadioButton("女");
//同一组的单选框必须添加到一个ButtonGroup组件
ButtonGroup gb = new ButtonGroup();
gb.add(rbMale);
gb.add(rbRemale);
lblSex.setBounds(80, 150, 100, 20);
rbMale.setBounds(180, 150, 50, 20);
//默认选中
rbMale.setSelected(true);
rbRemale.setBounds(230, 150, 50, 20);
add(lblSex);
add(rbMale);
add(rbRemale);
lblHover = new JLabel("爱好",JLabel.RIGHT);
cbFootball = new JCheckBox("JAVA");
cbBasketBall = new JCheckBox("C++");
cbNet = new JCheckBox("C#");
lblHover.setBounds(80, 200, 100, 20);
cbFootball.setBounds(180, 200, 60, 20);
cbBasketBall.setBounds(240, 200, 60, 20);
cbNet.setBounds(300, 200, 60, 20);
add(lblHover);
add(cbFootball);
add(cbBasketBall);
add(cbNet);
lblRemark = new JLabel("个性签名",JLabel.RIGHT);
txtRemark = new JTextArea(5, 80);
lblRemark.setBounds(80, 260, 100, 20);
txtRemark.setBounds(80,290, 330, 100);
add(lblRemark);
JScrollPane bar = new JScrollPane(txtRemark);
bar.setBounds(80,290, 330, 100);
add(bar);
btnSave = new JButton("注册(S)");
//设置热键(先按住ALT键+S)
btnSave.setMnemonic('S');
btnClose = new JButton("关闭(X)");
//设置热键(先按住ALT键+X)
btnClose.setMnemonic('X');
btnSave.setBounds(250,430, 100, 30);
btnClose.setBounds(360,430, 100, 30);
//注册按钮事件
btnClose.addActionListener(this);
btnSave.addActionListener(this);
add(btnSave);
add(btnClose);
setSize(500,500);
setVisible(true);
//DISPOSE_ON_CLOSE,关闭当前窗口,但不退出程序
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setLocationRelativeTo(null);
}
//Action事件
@Override
public void actionPerformed(ActionEvent e) {
if(e.getSource() == btnSave) {
String str = "学生信息:\n"+txtUserName.getText();
str += ","+txtAge.getText()+",";
if(rbMale.isSelected()) {
str += rbMale.getText()+",";
}
if(rbRemale.isSelected()) {
str += rbRemale.getText()+",";
}
str += "擅长:";
if(cbFootball.isSelected()) {
str += cbFootball.getText()+",";
}
if(cbBasketBall.isSelected()) {
str += cbBasketBall.getText()+",";
}
if(cbNet.isSelected()) {
str += cbNet.getText()+",";
}
str += "\n自我介绍:"+txtRemark.getText();
JOptionPane.showMessageDialog(null, str);
}else if(e.getSource() == btnClose) {
JOptionPane.showMessageDialog(null, "你点击了关闭按钮");
//退出程序
// System.exit(0);
//关闭窗口
// setVisible(false);
dispose();
}
}
public static void main(String[] args) {
new 学生注册();
}
}
您的问题已经有小伙伴解答了,请点击【采纳】按钮,采纳帮您提供解决思路的答案,给回答的人一些鼓励哦~~
ps:开通问答VIP,享受5次/月 有问必答服务,了解详情↓↓↓
【电脑端】戳>>> https://vip.csdn.net/askvip?utm_source=1146287632
【APP 】 戳>>> https://mall.csdn.net/item/52471?utm_source=1146287632