В этой статье в основном объясняется пример использования языка программирования Java для создания настольных графических приложений с помощью Swing.С помощью простого интерфейса формы отправки личной информации вы можете понять управление макетом Swing, настройки значков окон, компиляцию и работу, а также настройки оконного меню.
Дата: 25 августа 2023 г.
фактический эффект
Появится интерфейс справочного документа нового окна:
Описание: Установите значок нового окна в соответствии с главным окном. Вы также можете настроить макет в новом окне так же, как в главном окне.
пример кода
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.Desktop;
import java.net.URI;
public class MainWindow extends JFrame {
public MainWindow() {
setTitle("简易swing个人信息填写,多菜单界面demo实例");
setSize(400, 300);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setLayout(new BorderLayout());
setLocation(200, 100);
// 设置任务栏图标
Image taskbarIcon = Toolkit.getDefaultToolkit().getImage("E:\\develop\\cursor\\java\\icon.png");
setIconImage(taskbarIcon);
// 创建菜单栏
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
// 创建官网菜单项
JMenuItem websiteMenuItem = new JMenuItem("官网");
websiteMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
openWebsite();
}
});
// 创建帮助菜单项
JMenuItem helpMenuItem = new JMenuItem("帮助");
helpMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
showHelpWindow();
}
});
// 将菜单项添加到菜单栏
JMenu menu = new JMenu("菜单");
menuBar.add(menu);
menu.add(websiteMenuItem);
menu.add(helpMenuItem);
// 创建个人信息填写表单
JPanel formPanel = new JPanel(new GridBagLayout());
GridBagConstraints constraints = new GridBagConstraints();
constraints.anchor = GridBagConstraints.WEST;
JLabel nameLabel = new JLabel("姓名:");
JTextField nameTextField = new JTextField(20);
JLabel genderLabel = new JLabel("性别:");
JRadioButton maleRadioButton = new JRadioButton("男");
JRadioButton femaleRadioButton = new JRadioButton("女");
ButtonGroup genderButtonGroup = new ButtonGroup();
genderButtonGroup.add(maleRadioButton);
genderButtonGroup.add(femaleRadioButton);
JLabel hobbyLabel = new JLabel("爱好:");
JCheckBox javaCheckBox = new JCheckBox("Java");
JCheckBox pythonCheckBox = new JCheckBox("Python");
JCheckBox cSharpCheckBox = new JCheckBox("C#");
JLabel introLabel = new JLabel("简介:");
JTextArea introTextArea = new JTextArea(5, 20);
JLabel dropdownLabel = new JLabel("下拉:");
String[] dropdownOptions = {
"不内卷", "规避竞争的最好方法是避免竞争", "养生上班才好"};
JComboBox<String> dropdownComboBox = new JComboBox<>(dropdownOptions);
JButton submitButton = new JButton("提交");
submitButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
submitForm(nameTextField.getText(), maleRadioButton.isSelected(),
javaCheckBox.isSelected(), pythonCheckBox.isSelected(),
cSharpCheckBox.isSelected(), introTextArea.getText(),
dropdownComboBox.getSelectedItem().toString());
}
});
//设置布局
constraints.gridx = 0;//设置x坐标
constraints.gridy = 0;//设置y坐标
formPanel.add(nameLabel, constraints);//添加组件
constraints.gridx = 1;
constraints.gridwidth = 3;//设置宽度
formPanel.add(nameTextField, constraints);
constraints.gridx = 0;
constraints.gridy = 1;
formPanel.add(genderLabel, constraints);
constraints.gridx = 1;
formPanel.add(maleRadioButton, constraints);
constraints.gridx = 2;
formPanel.add(femaleRadioButton, constraints);
constraints.gridx = 0;
constraints.gridy = 2;
formPanel.add(hobbyLabel, constraints);
constraints.gridx = 1;
constraints.gridwidth = 1;
formPanel.add(javaCheckBox, constraints);
constraints.gridx = 2;
constraints.gridwidth = 1;
formPanel.add(pythonCheckBox, constraints);
constraints.gridx = 3;
constraints.gridwidth = 1;
formPanel.add(cSharpCheckBox, constraints);
constraints.gridx = 0;
constraints.gridy = 3;
formPanel.add(introLabel, constraints);
constraints.gridx = 1;
constraints.gridwidth = 3;
formPanel.add(introTextArea, constraints);
constraints.gridx = 0;
constraints.gridy = 4;
formPanel.add(dropdownLabel, constraints);
constraints.gridx = 1;
constraints.gridwidth = 3;
formPanel.add(dropdownComboBox, constraints);
constraints.gridx = 5;
constraints.gridy = 6;
constraints.gridwidth = 4;
formPanel.add(submitButton, constraints);
add(formPanel, BorderLayout.CENTER);
setVisible(true);
}
//打开官网
private void openWebsite() {
int result = JOptionPane.showConfirmDialog(this, "点击确认即可打开www.youqiong.net", "打开官网", JOptionPane.OK_CANCEL_OPTION, JOptionPane.INFORMATION_MESSAGE);
if (result == JOptionPane.OK_OPTION) {
try {
URI uri = new URI("https://www.youqiong.net");
Desktop desktop = Desktop.getDesktop();
if (desktop.isSupported(Desktop.Action.BROWSE)) {
desktop.browse(uri);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
//显示新窗口
private void showHelpWindow() {
JFrame helpWindow = new JFrame();
JScrollPane scrollPane = new JScrollPane();
JTextPane textPane = new JTextPane();
StringBuilder content = new StringBuilder();
for (int i = 1; i <= 200; i++) {
content.append(i).append("\n");
}
textPane.setText(content.toString());
scrollPane.setViewportView(textPane);
helpWindow.add(scrollPane);
helpWindow.setTitle("帮助窗口");
helpWindow.setSize(400, 300);
helpWindow.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
helpWindow.setVisible(true);
}
//弹出表单信息
private void submitForm(String name, boolean isMale, boolean hasJavaHobby,
boolean hasPythonHobby, boolean hasCSharpHobby,
String intro, String selectedOption) {
JOptionPane.showMessageDialog(this, "姓名:" + name + "\n"
+ "性别:" + (isMale ? "男" : "女") + "\n"
+ "爱好:" + (hasJavaHobby ? "Java " : "") + "\n"
+ " " + (hasPythonHobby ? "Python " : "") + "\n"
+ " " + (hasCSharpHobby ? "C#" : "") + "\n"
+ "个人简介:" + intro + "\n"
+ "下拉框选项:" + selectedOption, "个人基本信息", JOptionPane.INFORMATION_MESSAGE);
}
//实例化窗口
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new MainWindow();
}
});
}
}
Описание кода выполнения
1. Не забудьте сначала скомпилировать, используйте utf-8 для китайского языка.
javac -encoding UTF-8 MainWindow.java
2. Чтобы выполнить команду, введите следующее
java MainWindow
конец: нажмите Enter после ввода, чтобы открыть эффект начального окна.