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.调试,测试

原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/303582.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小蓝小蓝
上一篇 2024-12-31 11:50
下一篇 2024-12-31 11:50

相关推荐

  • Java JsonPath 效率优化指南

    本篇文章将深入探讨Java JsonPath的效率问题,并提供一些优化方案。 一、JsonPath 简介 JsonPath是一个可用于从JSON数据中获取信息的库。它提供了一种DS…

    编程 2025-04-29
  • java client.getacsresponse 编译报错解决方法

    java client.getacsresponse 编译报错是Java编程过程中常见的错误,常见的原因是代码的语法错误、类库依赖问题和编译环境的配置问题。下面将从多个方面进行分析…

    编程 2025-04-29
  • Java腾讯云音视频对接

    本文旨在从多个方面详细阐述Java腾讯云音视频对接,提供完整的代码示例。 一、腾讯云音视频介绍 腾讯云音视频服务(Cloud Tencent Real-Time Communica…

    编程 2025-04-29
  • Java Bean加载过程

    Java Bean加载过程涉及到类加载器、反射机制和Java虚拟机的执行过程。在本文中,将从这三个方面详细阐述Java Bean加载的过程。 一、类加载器 类加载器是Java虚拟机…

    编程 2025-04-29
  • Java Milvus SearchParam withoutFields用法介绍

    本文将详细介绍Java Milvus SearchParam withoutFields的相关知识和用法。 一、什么是Java Milvus SearchParam without…

    编程 2025-04-29
  • 如何在Java中拼接OBJ格式的文件并生成完整的图像

    OBJ格式是一种用于表示3D对象的标准格式,通常由一组顶点、面和纹理映射坐标组成。在本文中,我们将讨论如何将多个OBJ文件拼接在一起,生成一个完整的3D模型。 一、读取OBJ文件 …

    编程 2025-04-29
  • Java 8中某一周的周一

    Java 8是Java语言中的一个版本,于2014年3月18日发布。本文将从多个方面对Java 8中某一周的周一进行详细的阐述。 一、数组处理 Java 8新特性之一是Stream…

    编程 2025-04-29
  • Java判断字符串是否存在多个

    本文将从以下几个方面详细阐述如何使用Java判断一个字符串中是否存在多个指定字符: 一、字符串遍历 字符串是Java编程中非常重要的一种数据类型。要判断字符串中是否存在多个指定字符…

    编程 2025-04-29
  • VSCode为什么无法运行Java

    解答:VSCode无法运行Java是因为默认情况下,VSCode并没有集成Java运行环境,需要手动添加Java运行环境或安装相关插件才能实现Java代码的编写、调试和运行。 一、…

    编程 2025-04-29
  • 如何实现图像粘贴到蒙版

    本文将从多个方面介绍图像粘贴到蒙版的实现方法。 一、创建蒙版 首先,在HTML中创建一个蒙版元素,用于接收要粘贴的图片。 <div id=”mask” style=”widt…

    编程 2025-04-29

发表回复

登录后才能评论