本篇文章主要講解,java編程語言通過swing制作桌面圖形應(yīng)用的實例教程,通過一個簡單的個人信息提交表單界面,讓你了解swing的布局管理、窗口圖標設(shè)置、編譯和運行以及窗口菜單的設(shè)置。
日期:2023年8月25日
實際效果
彈出新窗口幫助文檔界面:
說明:設(shè)置新窗口圖標和主窗口一致,也可在新窗口設(shè)置布局,同主窗口的配置方式。文章來源:http://www.zghlxwxcb.cn/news/detail-673868.html
代碼實例
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);
// 設(shè)置任務(wù)欄圖標
Image taskbarIcon = Toolkit.getDefaultToolkit().getImage("E:\\develop\\cursor\\java\\icon.png");
setIconImage(taskbarIcon);
// 創(chuàng)建菜單欄
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
// 創(chuàng)建官網(wǎng)菜單項
JMenuItem websiteMenuItem = new JMenuItem("官網(wǎng)");
websiteMenuItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
openWebsite();
}
});
// 創(chuàng)建幫助菜單項
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);
// 創(chuàng)建個人信息填寫表單
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 = {"不內(nèi)卷", "規(guī)避競爭的最好方法是避免競爭", "養(yǎng)生上班才好"};
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());
}
});
//設(shè)置布局
constraints.gridx = 0;//設(shè)置x坐標
constraints.gridy = 0;//設(shè)置y坐標
formPanel.add(nameLabel, constraints);//添加組件
constraints.gridx = 1;
constraints.gridwidth = 3;//設(shè)置寬度
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);
}
//打開官網(wǎng)
private void openWebsite() {
int result = JOptionPane.showConfirmDialog(this, "點擊確認即可打開www.youqiong.net", "打開官網(wǎng)", 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();
}
});
}
}
執(zhí)行代碼說明
1.記得先編譯,中文用utf-8
javac -encoding UTF-8 MainWindow.java
2.執(zhí)行命令輸入如下即可
java MainWindow
end:輸入后按回車即可彈出最初的窗口效果。文章來源地址http://www.zghlxwxcb.cn/news/detail-673868.html
到了這里,關(guān)于java使用swing制作桌面圖形應(yīng)用的實例教程的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!