您的位置:

java设计用户图像界面(java设计用户图像界面不显示)

本文目录一览:

java设计用户图像界面?

程序运行效果图

import javax.swing.*;

import java.awt.*;

import java.awt.event.*;

/**

* 窗口继承自JFrame.

* 为了方便事件处理, 实现了ActionListener

*/

public class ScoreApp extends JFrame implements ActionListener {

  //需要调用的文本框组件

  private JTextField tfCh, tfMath, tfEn, tfTotal, tfAvg;

  private static final Font MY_FONT = new Font(null, Font.PLAIN, 16);

  public ScoreApp() {

      //初始化组件

      initControls();

      //初始化窗口

      initWindow();

  }

  private void initControls() {

      //顶部

      JLabel info = new JLabel("请输入三门课程的成绩", JLabel.CENTER);

      info.setFont(new Font(null, Font.BOLD, 25));

      this.add(info, BorderLayout.NORTH);

      //中部: 是一个5行2列的表格布局;水平间距垂直间距都是10

      JPanel jpCenter = new JPanel(new GridLayout(5, 2, 10, 10));

      JLabel jlCh = new JLabel("语文", JLabel.CENTER);

      tfCh = new JTextField();

      tfCh.setPreferredSize(new Dimension(150, 30));

      JLabel jlMath = new JLabel("数学", JLabel.CENTER);

      tfMath = new JTextField();

      JLabel jlEh = new JLabel("英语", JLabel.CENTER);

      tfEn = new JTextField();

      JLabel jlTotal = new JLabel("总分", JLabel.CENTER);

      tfTotal = new JTextField();

      //总分需要计算获得,不许直接编辑

      tfTotal.setEditable(false);

      //不许编辑后,默认会变成灰色, 重新设置背景色为白色

      tfTotal.setBackground(Color.WHITE);

      JLabel jlAvg = new JLabel("平均分", JLabel.CENTER);

      tfAvg = new JTextField();

      //平均分同样需要计算获得,不许编辑

      tfAvg.setEditable(false);

      tfAvg.setBackground(Color.WHITE);

      addAll(jpCenter, jlCh, tfCh, jlMath, tfMath, jlEh, tfEn, jlTotal, tfTotal, jlAvg, tfAvg);

      this.add(jpCenter, BorderLayout.CENTER);

      //底部

      JPanel jpBottom = new JPanel();

      //美化下,创建个边框

      jpBottom.setBorder(BorderFactory.createEtchedBorder());

      JButton btnCompute = new JButton("计算");

      btnCompute.addActionListener(this);

      JButton btnReset = new JButton("重置");

      btnReset.addActionListener(this);

      JButton btnExit = new JButton("退出");

      btnExit.addActionListener(this);

      addAll(jpBottom, btnCompute,btnReset, btnExit);

      this.add(jpBottom, BorderLayout.SOUTH);

  }

  private void initWindow() {

      setTitle("计算学生成绩的总分和平均分");

      setSize(520, 380);

      setLocationRelativeTo(null);

      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

  }

  /**

   * 向第一个容器里添加组件

   * @param pane

   * @param controls

   */

  private void addAll(JComponent pane, JComponent... controls) {

      for (JComponent control : controls) {

          control.setFont(MY_FONT);

          pane.add(control);

      }

  }

  /**

   * 事件处理. 处理按钮的点击事件

   * @param e

   */

  @Override

  public void actionPerformed(ActionEvent e) {

      //判断是哪一个按钮被点击了,然后进行对应的处理

      String cmd = e.getActionCommand();

      //如果是退出按钮被点击那么退出

      if (cmd.equals("退出")) {

          System.exit(0);

          //如果是计算按钮被点击,那么计算结果

      } else if (cmd.equals("计算")) {

          double sum = 0, avg = 0;

          try {

              double scoreCh = Double.parseDouble(tfCh.getText());

              double scoreMath = Double.parseDouble(tfMath.getText());

              double scoreEn = Double.parseDouble(tfEn.getText());

              sum = scoreCh + scoreMath + scoreEn;

              avg = sum / 3.0;

          } catch (NumberFormatException ex) {

              JOptionPane.showMessageDialog(this, "请确认输入的都是数字,不能是空白,字母,符号等");

              return;

          }

          tfTotal.setText(String.valueOf(sum));

          //平均分 四舍五入保留2位

          tfAvg.setText(String.format("%.2f", avg));

          //如果点击了重置按钮 ,那么清空文本框的内容

      } else if (cmd.equals("重置")) {

          tfCh.setText("");

          tfMath.setText("");

          tfEn.setText("");

          tfTotal.setText("");

          tfAvg.setText("");

      }

  }

  public static void main(String[] args) {

      //创建窗口设置可见

      SwingUtilities.invokeLater(() -

              new ScoreApp().setVisible(true)

      );

  }

}

Java编写图形用户界面程序

运行如图

参考代码如下

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class RegDemo extends JFrame implements ActionListener{

JTextField jtf;

JPasswordField jpf;

public RegDemo() {

        //组件的创建, 和布局安排

JPanel jpc = new JPanel();//默认流式布局

JPanel jp1 = new JPanel(new GridLayout(2, 2,5,10));//网格布局

jp1.setBorder(BorderFactory.createTitledBorder("用户注册"));

JLabel jl1 = new JLabel("用户名:");

jtf = new JTextField(10);

JLabel jl2 = new JLabel("密码:");

jpf = new JPasswordField(10);

                jpf.setEchoChar('*');//用*号来隐藏密码的显示

jp1.add(jl1);jp1.add(jtf);

jp1.add(jl2);jp1.add(jpf);

jpc.add(jp1);

add(jpc);

JButton jb1 = new JButton("提交");

jb1.addActionListener(this);

jb1.setActionCommand("yes");

JButton jb2 = new JButton("取消");

jb2.addActionListener(this);

jb2.setActionCommand("no");

JPanel jp2 = new JPanel();

jp2.add(jb1);jp2.add(jb2);

add(jp2,BorderLayout.SOUTH);

setTitle("用户注册界面");

        setSize(280, 280);

        setLocationRelativeTo(null);//窗口居中

        setDefaultCloseOperation(EXIT_ON_CLOSE);//

        setVisible(true);

}

public static void main(String[] args) {

new RegDemo();

}

@Override

public void actionPerformed(ActionEvent e) {

if(e.getActionCommand().equals("yes")){

String name  = jtf.getText().trim();

String pwd = new String(jpf.getPassword());

if(name.equals("")||pwd.equals("")){

JOptionPane.showMessageDialog(this, "你还没有输入用户名或者密码");

}else{

JOptionPane.showMessageDialog(this, "注册成功!用户名"+name+",密码"+pwd);

}

}else{

jtf.setText("");

jpf.setText("");

}

}

}

在java中,设计图形用户界面需要经历哪几个基本步骤

1, 分析业务需求, 理顺业务逻辑

2, 根据业务需要考虑使用何种容器(JFrame ,Frame ,JWindow..) 需要的数量.

3, 每个容器(窗口)使用组件

4.组件使用何种布局方式(边界布局,绝对布局,网格布局..),排列在容器(窗口)中

5.组件中需要响应那些事件, 把事件响应代码写好,然后绑定到组件上(addListener...)

6.调试,测试