简体   繁体   English

获取用户输入,然后使用 AWT 打印新文本

[英]Getting user input and then printing new text using AWT

I am trying to create a simple program where when I press a button, new text will appear but I have no idea how to do it (I imagine it is very simple).我正在尝试创建一个简单的程序,当我按下按钮时,会出现新文本,但我不知道该怎么做(我想这很简单)。

The code I have right now is:我现在拥有的代码是:

    import java.awt.*; 
    public class ConsumptionGUI extends Frame 
    {
   public ConsumptionGUI()
    {
        Frame fr = new Frame();
        Button b1 = new Button ("Terminate Program");
        Button b2 = new Button ("Start");
        b1.setBounds(50,50,50,50);
        b2.setBounds(50,50,50,50);
        b1.addActionListener(e-> System.exit(0));
        Label txt = new Label ("This is my first GUI");
        //add to frame (after all buttons and text was added)
        fr.add(b2);
        fr.add(txt);
        fr.add(b1);
        fr.setSize(500,300);
        fr.setTitle("Vehicles Information System");
        fr.setLayout(new FlowLayout());
        fr.setVisible(true);   
    } //end constructor

    public static void main(String args[]){
    ConsumptionGUI frame1= new ConsumptionGUI();
    } //end main

Basically after this point I managed to create a frame with 2 buttons and some text in the middle.基本上在这一点之后,我设法创建了一个带有 2 个按钮和一些中间文本的框架。 I am really struggling to continue from here.我真的很难从这里继续。

I need the program to first start by the press of a button then print some new text (something like "please enter your car's speed") and then save this information (to be used in a simple formula).我需要程序首先通过按下按钮启动,然后打印一些新文本(例如“请输入您的汽车速度”),然后保存这些信息(用于简单的公式)。 Afterwards the program needs to display the formula used and print what is the value calculated.之后程序需要显示使用的公式并打印计算出的值。

Can anyone please help?有人可以帮忙吗?

Thanks谢谢

To get user input, you can implement a Dialog like in below code.要获取用户输入,您可以在下面的代码中实现一个Dialog You can use another similar dialog to show the formula and result as well.您也可以使用另一个类似的对话框来显示公式和结果。

import java.awt.*;
import java.awt.event.*;

public class ConsumptionGUI extends Frame
{
  public ConsumptionGUI()
  {
    Frame fr = new Frame();
    Button b1 = new Button("Terminate Program");
    Button b2 = new Button("Start");
    //b1.setBounds(50, 50, 50, 50); // Unnecessary
    //b2.setBounds(50, 50, 50, 50); // Unnecessary
    b1.addActionListener(e -> System.exit(0));
    b2.addActionListener(new ActionListener()
    {
      @Override
      public void actionPerformed(ActionEvent e)
      {
        InputDialog dialog = new InputDialog(fr);
        dialog.setVisible(true);
        System.out.println("User inputted speed = " + dialog.getSpeed());
      }
    });
    Label txt = new Label("This is my first GUI");
    //add to frame (after all buttons and text was added)
    fr.add(b2);
    fr.add(txt);
    fr.add(b1);
    fr.setSize(500, 300);
    fr.setTitle("Vehicles Information System");
    fr.setLayout(new FlowLayout());
    fr.setVisible(true);
  } //end constructor

  public static void main(String args[])
  {
    ConsumptionGUI frame1 = new ConsumptionGUI();
  } //end main
}

class InputDialog extends Dialog
{
  private int speed;

  InputDialog(Frame owner)
  {
    super(owner, "Input", true);
    addWindowListener(new WindowAdapter()
    {
      @Override
      public void windowClosing(WindowEvent e)
      {
        dispose();
      }
    });

    TextField textField = new TextField(20);

    Button okButton = new Button("OK");
    okButton.addActionListener(new ActionListener()
    {
      @Override
      public void actionPerformed(ActionEvent e)
      {
        String speedString = textField.getText();
        speed = !speedString.isEmpty() ? Integer.parseInt(speedString) : 0;
        dispose();
      }
    });

    setLayout(new GridLayout(3, 1));
    add(new Label("Please enter your car's speed"));
    add(textField);
    add(okButton);
    pack();
  }

  int getSpeed()
  {
    return speed;
  }
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM