星期二—GUI的初步了解
Posted 王。雄
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了星期二—GUI的初步了解相关的知识,希望对你有一定的参考价值。
1、GUI:GUI(Graphical User Interface)即图形用户界面,它能够使应用程序看上去更加友好;
2、AWT(Abstract Windows Toolkit)是Java语言中最原始的GUI工具包,相关API位于java.awt包中。AWT是一个非常有限的GUI工具包,比如树、表格等都不支持。
3、在Swing编程中,有一些经常要使用到的组件,其中包括:JFrame(窗体,框架) JPanel(面板,容器) JButton(按钮) JLabel(标签) JTextField(文本框) JTextArea(文本域)
用GUI练习计算器:
package com.chinasoft.gui.PM; import java.awt.BorderLayout; import java.awt.EventQueue; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.border.EmptyBorder; import javax.swing.JButton; import javax.swing.GroupLayout; import javax.swing.GroupLayout.Alignment; import javax.swing.JComboBox; import javax.swing.JOptionPane; import java.awt.event.ActionListener; import java.awt.event.ActionEvent; import javax.swing.LayoutStyle.ComponentPlacement; import java.awt.Font; import javax.swing.JTextField; import java.awt.Color; public class Gui extends JFrame { //建立一个框体 private JPanel contentPane; private JTextField textField; private JButton[] allButtons; private JButton clearButton; /** * Launch the application. */ public static void main(String[] args) { String b = "123456"; //设置一个登录界面,密码为123456 String a = JOptionPane.showInputDialog("请输出您的密码:"); if(a.equals(b)){ // JOptionPane.showMessageDialog(null, "alert", "alert", JOptionPane.ERROR_MESSAGE); EventQueue.invokeLater(new Runnable() { public void run() { try { Gui frame = new Gui(); frame.setVisible(true); } catch (Exception e) { e.printStackTrace(); } } }); }else {JOptionPane.showMessageDialog(null, "密码输入错误", "alert", JOptionPane.ERROR_MESSAGE);} } /** * Create the frame. */ public Gui() { setBackground(Color.BLUE); Suanfa f = new Suanfa(); f.suanfa1(); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setTitle("计算器"); setBounds(100, 100, 350, 500); contentPane = new JPanel(); contentPane.setBackground(Color.red); contentPane.setBorder(new EmptyBorder(5, 5, 5, 5)); setContentPane(contentPane); JButton btnNewButton_3 = new JButton("="); btnNewButton_3.setBackground(Color.CYAN); btnNewButton_3.setFont(new Font("宋体", Font.PLAIN, 30)); //基本上所有的运算过程都在“=”中实现 btnNewButton_3.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String str = textField.getText(); byte []b1 = new byte[str.length()]; b1 = str.getBytes(); int endIndex = str.length(); for(int i =0;i <str.length();i++ ){ //用for循环来遍历数组长度中的特殊符号 if(b1[i] == \'+\'){ //用if条件来判断符号,同下面的“-”,“/”,“*” //获取第一个数字 int index11 = str.indexOf("+"); String str1 = str.substring(0, index11); int a = Integer.parseInt(str1); //获取第二个数字 String str2 = str.substring(index11+1, endIndex); int b = Integer.parseInt(str2); //加法计算 int sum = a + b; //输出结果 textField.setText(Integer.toString(sum)); }else if(b1[i] == \'-\'){ int index33 = str.indexOf("-"); String str3 = str.substring(0, index33); int c = Integer.parseInt(str3); String str4 = str.substring(index33+1, endIndex); int d = Integer.parseInt(str4); int div = c - d; textField.setText(Integer.toString(div)); }else if(b1[i] == \'*\'){ int index44 = str.indexOf("*"); String str11 = str.substring(0, index44); int c1 = Integer.parseInt(str11); String str12 = str.substring(index44+1, endIndex); int d1 = Integer.parseInt(str12); int cheng = c1 * d1; textField.setText(Integer.toString(cheng)); }else if(b1[i] == \'/\'){ int index5 = str.indexOf("/"); String str13 = str.substring(0, index5); int c2 = Integer.parseInt(str13); String str14 = str.substring(index5+1, endIndex); int d2 = Integer.parseInt(str14); int chu = c2 / d2; textField.setText(Integer.toString(chu)); } } } }); JButton btnNewButton = new JButton("0"); //把btnNewButton按钮在文本框中输出 同下其他按钮 btnNewButton.setBackground(Color.CYAN); btnNewButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { textField.setText(textField.getText() + "0"); } }); JButton btnNewButton_1 = new JButton("+"); btnNewButton_1.setBackground(Color.CYAN); btnNewButton_1.setFont(new Font("宋体", Font.PLAIN, 30)); btnNewButton_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { textField.setText(textField.getText() + "+"); } }); JButton button = new JButton("."); button.setBackground(Color.CYAN); button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { textField.setText(textField.getText() + "."); } }); button.setFont(new Font("宋体", Font.PLAIN, 25)); JButton button_1 = new JButton("-"); button_1.setBackground(Color.CYAN); button_1.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { textField.setText(textField.getText() + "-"); } }); button_1.setFont(new Font("宋体", Font.PLAIN, 25)); JButton button_2 = new JButton("3"); button_2.setBackground(Color.CYAN); button_2.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { textField.setText(textField.getText() + "3"); } }); button_2.setFont(new Font("宋体", Font.PLAIN, 25)); JButton button_3 = new JButton("2"); button_3.setBackground(Color.CYAN); button_3.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { textField.setText(textField.getText() + "2"); } }); button_3.setFont(new Font("宋体", Font.PLAIN, 25)); JButton button_4 = new JButton("1"); button_4.setBackground(Color.CYAN); button_4.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { textField.setText(textField.getText() + "1"); } }); button_4.setFont(new Font("宋体", Font.PLAIN, 25)); JButton button_5 = new JButton("4"); button_5.setBackground(Color.CYAN); button_5.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { textField.setText(textField.getText() + "4"); } }); button_5.setFont(new Font("宋体", Font.PLAIN, 25)); JButton button_6 = new JButton("5"); button_6.setBackground(Color.CYAN); button_6.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { textField.setText(textField.getText() + "5"); } }); button_6.setFont(new Font("宋体", Font.PLAIN, 25)); JButton button_7 = new JButton("6"); button_7.setBackground(Color.CYAN); button_7.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { textField.setText(textField.getText() + "6"); } }); button_7.setFont(new Font("宋体", Font.PLAIN, 25)); JButton button_8 = new JButton("*"); button_8.setBackground(Color.CYAN); button_8.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { textField.setText(textField.getText() + "*"); } }); button_8.setFont(new Font("宋体", Font.PLAIN, 25)); JButton button_9 = new JButton("1/x"); button_9.setBackground(Color.CYAN); button_9.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { } }); button_9.setFont(new Font("宋体", Font.PLAIN, 7)); JButton button_10 = new JButton("7"); button_10.setBackground(Color.CYAN); button_10.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { textField.setText(textField.getText() + "7"); } }); button_10.setFont(new Font("宋体", Font.PLAIN, 25)); JButton button_11 = new JButton("8"); button_11.setBackground(Color.CYAN); button_11.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { textField.setText(textField.getText() + "8"); } }); button_11.setFont(new Font("宋体", Font.PLAIN, 25)); JButton button_12 = new JButton("9"); button_12.setBackground(Color.CYAN); button_12.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { textField.setText(textField.getText() + "9"); } }); button_12.setFont(new Font("宋体", Font.PLAIN, 25)); JButton button_14 = new JButton("%"); button_14.setBackground(Color.CYAN); button_14.setFont(new Font("宋体", Font.PLAIN, 25)); JButton button_13 = new JButton("/"); button_13.setBackground(Color.CYAN); button_13.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { textField.setText(textField.getText() + "/"); } }); button_13.setFont(new Font("宋体", Font.PLAIN, 25)); JButton button_15 = new JButton("\\u2190"); //清除按钮 button_15.setBackground(Color.CYAN); button_15.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { String str = textField.getText(); int a = str.length(); if(a == 0){ JOptionPane.showMessageDialog(null, "没了,别逗了", "alert", JOptionPane.ERROR_MESSAGE); }else{ String str1 = str.substring(0, a-1); // String str2 = str.replace(str, str1); textField.setText(str1); } } }); button_15.setFont(new Font("宋体", Font.PLAIN, 12)); JButton btnCe = new JButton("CE"); btnCe.setBackground(Color.CYAN); btnCe.setFont(new Font("宋体", Font.PLAIN, 12)); JButton btnC = new JButton("C"); //把文本框中内容清空 btnC.setBackground(Color.CYAN); btnC.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { textField.setText(""); } }); btnC.setFont(new Font("宋体", Font.PLAIN, 25)); JButton button_18 = new JButton("\\u00B1"); button_18.setBackground(Color.CYAN); button_18.setFont(new Font("宋体", Font.PLAIN, 12)); JButton button_19 = new JButton("\\u221A"); button_19.setBackground(Color.CYAN); button_19.setFont(new Font("宋体", Font.PLAIN, 12)); JButton btnMc = new JButton("MC"); btnMc.setBackground(Color.CYAN); btnMc.setFont(new Font("宋体", Font.PLAIN, 12)); JButton btnMr = new JButton("MR"); btnMr.setBackground(Color.CYAN); btnMr.setFont(new Font("宋体", Font.PLAIN, 12)); JButton btnM = new JButton("MS"); btnM.setBackground(Color.CYAN); btnM.setFont(new Font("宋体", Font.PLAIN, 12)); JButton btnM_1 = new JButton("M+"); btnM_1.setBackground(Color.CYAN); btnM_1.setFont(new Font("宋体", Font.PLAIN, 12)); JButton btnM_2 = new JButton("M-"); btnM_2.setBackground(Color.CYAN); btnM_2.setFont(new Font("宋体", Font.PLAIN, 12)); textField = new JTextField(); textField.setBackground(Color.BLUE); textField.setForeground(Color.MAGENTA); textField.setFont(new Font("宋体", Font.PLAIN, 30)); textField.setColumns(10); GroupLayout gl_contentPane = new GroupLayout(contentPane); gl_contentPane.setHorizontalGroup( gl_contentPane.createParallelGroup(Alignment.LEADING) .addGroup(gl_contentPane.createSequentialGroup() .addGap(26) .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING) .addComponent(textField, GroupLayout.PREFERRED_SIZE, 259, GroupLayout.PREFERRED_SIZE) .addGroup(gl_contentPane.createSequentialGroup() .addGroup(gl_contentPane.createParallelGroup(Alignment.TRAILING) .addGroup(gl_contentPane.createSequentialGroup() .addComponent(btnNewButton, GroupLayout.PREFERRED_SIZE, 104, GroupLayout.PREFERRED_SIZE) .addGap(13) .addComponent(button, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE) .addPreferredGap(ComponentPlacement.RELATED) .addComponent(btnNewButton_1)) .addGroup(gl_contentPane.createSequentialGroup() .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING) .addComponent(button_4, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE) .addComponent(button_5, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE) .addComponent(button_10, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE) .addComponent(button_15, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE) .addComponent(btnMc, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE)) .addPreferredGap(ComponentPlacement.UNRELATED) .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING) .addComponent(btnMr, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE) .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING, false) .addGroup(gl_contentPane.createSequentialGroup() .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING) .addComponent(button_3, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE) .addComponent(button_6, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE)) .addPreferredGap(ComponentPlacement.UNRELATED) .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING) .addGroup(gl_contentPane.createSequentialGroup() .addComponent(button_2, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE) .addPreferredGap(ComponentPlacement.RELATED) .addComponent(button_1, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE)) .addGroup(gl_contentPane.createSequentialGroup() .addComponent(button_7, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE) .addPreferredGap(ComponentPlacement.RELATED) .addComponent(button_8, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE)))) .addGroup(gl_contentPane.createSequentialGroup() .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING) .addComponent(button_11, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE) .addComponent(btnCe, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE)) .addPreferredGap(ComponentPlacement.UNRELATED) .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING) .addGroup(gl_contentPane.createSequentialGroup() .addComponent(btnC, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE) .addPreferredGap(ComponentPlacement.RELATED) .addComponent(button_18, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE)) .addGroup(gl_contentPane.createSequentialGroup() .addComponent(button_12, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE) .addPreferredGap(ComponentPlacement.RELATED, GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(button_13, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE)) .addGroup(gl_contentPane.createSequentialGroup() .addComponent(btnM, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE) .addPreferredGap(ComponentPlacement.RELATED) .addComponent(btnM_1, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE)))))))) .addPreferredGap(ComponentPlacement.RELATED) .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING) .addComponent(btnNewButton_3, GroupLayout.PREFERRED_SIZE, 52, GroupLayout.PREFERRED_SIZE) .addComponent(button_9, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE) .addComponent(button_14, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE) .addComponent(button_19, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE) .addComponent(btnM_2, GroupLayout.PREFERRED_SIZE, 47, GroupLayout.PREFERRED_SIZE)))) .addContainerGap(23, Short.MAX_VALUE)) ); gl_contentPane.setVerticalGroup( gl_contentPane.createParallelGroup(Alignment.TRAILING) .addGroup(gl_contentPane.createSequentialGroup() .addGap(23) .addComponent(textField, GroupLayout.PREFERRED_SIZE, 83, GroupLayout.PREFERRED_SIZE) .addGap(28) .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING) .addComponent(btnMc, GroupLayout.PREFERRED_SIZE, 44, GroupLayout.PREFERRED_SIZE) .addComponent(btnMr, GroupLayout.PREFERRED_SIZE, 44, GroupLayout.PREFERRED_SIZE) .addComponent(btnM, GroupLayout.PREFERRED_SIZE, 44, GroupLayout.PREFERRED_SIZE) .addComponent(btnM_1, GroupLayout.PREFERRED_SIZE, 44, GroupLayout.PREFERRED_SIZE) .addComponent(btnM_2, GroupLayout.PREFERRED_SIZE, 44, GroupLayout.PREFERRED_SIZE)) .addPreferredGap(ComponentPlacement.UNRELATED) .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING) .addComponent(button_15, GroupLayout.PREFERRED_SIZE, 44, GroupLayout.PREFERRED_SIZE) .addComponent(btnCe, GroupLayout.PREFERRED_SIZE, 44, GroupLayout.PREFERRED_SIZE) .addComponent(btnC, GroupLayout.PREFERRED_SIZE, 44, GroupLayout.PREFERRED_SIZE) .addComponent(button_18, GroupLayout.PREFERRED_SIZE, 44, GroupLayout.PREFERRED_SIZE) .addComponent(button_19, GroupLayout.PREFERRED_SIZE, 44, GroupLayout.PREFERRED_SIZE)) .addPreferredGap(ComponentPlacement.RELATED) .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING) .addComponent(button_10, GroupLayout.PREFERRED_SIZE, 44, GroupLayout.PREFERRED_SIZE) .addComponent(button_11, GroupLayout.PREFERRED_SIZE, 44, GroupLayout.PREFERRED_SIZE) .addComponent(button_14, GroupLayout.PREFERRED_SIZE, 44, GroupLayout.PREFERRED_SIZE) .addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE) .addComponent(button_13, GroupLayout.PREFERRED_SIZE, 44, GroupLayout.PREFERRED_SIZE) .addComponent(button_12, GroupLayout.PREFERRED_SIZE, 44, GroupLayout.PREFERRED_SIZE))) .addPreferredGap(ComponentPlacement.UNRELATED) .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING) .addComponent(button_5, GroupLayout.PREFERRED_SIZE, 44, GroupLayout.PREFERRED_SIZE) .addComponent(button_6, GroupLayout.PREFERRED_SIZE, 44, GroupLayout.PREFERRED_SIZE) .addComponent(button_7, GroupLayout.PREFERRED_SIZE, 44, GroupLayout.PREFERRED_SIZE) .addComponent(button_8, GroupLayout.PREFERRED_SIZE, 44, GroupLayout.PREFERRED_SIZE) .addComponent(button_9, GroupLayout.PREFERRED_SIZE, 44, GroupLayout.PREFERRED_SIZE)) .addPreferredGap(ComponentPlacement.UNRELATED) .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING) .addGroup(gl_contentPane.createSequentialGroup() .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING) .addComponent(button_1, GroupLayout.PREFERRED_SIZE, 44, GroupLayout.PREFERRED_SIZE) .addComponent(button_2, GroupLayout.PREFERRED_SIZE, 44, GroupLayout.PREFERRED_SIZE) .addGroup(gl_contentPane.createParallelGroup(Alignment.BASELINE) .addComponent(button_3, GroupLayout.PREFERRED_SIZE, 44, GroupLayout.PREFERRED_SIZE) .addComponent(button_4, GroupLayout.PREFERRED_SIZE, 44, GroupLayout.PREFERRED_SIZE))) .addGap(8) .addGroup(gl_contentPane.createParallelGroup(Alignment.LEADING) .addComponent(btnNewButton_1, GroupLayout.PREFERRED_SIZE, 44, GroupLayout.PREFERRED_SIZE) .addGroup(gl_contentPane.createParallelGroup(Alignment.TRAILING) .addComponent(button, GroupLayout.PREFERRED_SIZE, 44, GroupLayout.PREFERRED_SIZE) .addComponent(btnNewButton, GroupLayout.PREFERRED_SIZE, 41, GroupLayout.PREFERRED_SIZE)))) .addComponent(btnNewButton_3, GroupLayout.PREFERRED_SIZE, 94, GroupLayout.PREFERRED_SIZE)) .addContainerGap(GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); contentPane.setLayout(gl_contentPane); } private void clearButton() { // TODO Auto-generated method stub } }
以上是关于星期二—GUI的初步了解的主要内容,如果未能解决你的问题,请参考以下文章