我是java的新手,我正在尝试创建一个程序,首先要求用户输入一些数字,然后输出一个音量,区域等等。另外我想要显示一个矩形,我不知道如何做到这一点,因为我的程序运行良好,只是赢了不显示矩形。我能做什么?
package testchap3;
import java.util.*;
import javax.swing.JApplet;
import java.awt.*;
public class Chapter_3 extends JApplet
{
public void paint(Graphics page)
{
page.drawRect(50,50,60,60);
}
public static void main(String[] args)
{
int lenght,width,height,volume,Area,Perimeter;
Scanner scan = new Scanner(System.in);
System.out.println("What is the lenght:");
lenght = scan.nextInt();
System.out.println("What is the height:");
height = scan.nextInt();
System.out.println("What is the width:");
width= scan.nextInt();
volume = (lenght*height*width);
Area= volume/height;
Perimeter= lenght+width+lenght+width;
System.out.println("Your volume is:"+volume);
System.out.println("Your Area is:"+ Area);
System.out.println("Your perimeter is:"+Perimeter);
}
}
答案 0 :(得分:7)
你的问题:
如何组合GUI类和扫描仪类?
简答:不要。
更长的答案:至少不要尝试将GUI与绑定到System.in/console的扫描程序结合起来,因为这会导致尝试网格化两种截然相反的方式来获取用户输入:线性控制台输入与事件驱动GUI交互。相反,为什么不让用户以事件驱动的方式通过GUI输入信息呢?否则,您将失去首先使用GUI的所有优势,并有可能将GUI的事件线程用于控制台输入。
在你的情况下,我有三个JTextFields或JFormattedTextFields或JSpinner,用户可以在数据中输入,然后在按下JButton并启动它的Action后,我会在另一个文本组件或JLabel中显示结果
其他问题:你的GUI是一个JApplet,但你已经给它一个main方法并运行它的主方法,它永远不会工作,也不会显示GUI。请阅读您可以找到的here GUI教程。而是显示JFrame,而不是applet,覆盖JPanel并在其paintComponent方法中绘制(根据教程),并再次删除所有Scanner代码。