java - 使用 Java JFrame 从用户输入中绘制形状
问题描述
我正在制作一个 Java 程序来询问用户的选择,然后绘制形状。但是当我运行我的代码时,它只显示一个 JFrame 白屏并且没有询问。我有2节课
//main.java
public class Main {
public static void main (String [] args){
new shapesss();
}
}
//2nd class shapess.java
import java.awt.*;
import javax.swing.*;
import java.util.Scanner;
public class shapesss extends JFrame{
shapesss(){
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setSize(300,300);
this.setLocationRelativeTo(null);
this.setVisible(true);
}
public void shapes (Graphics g){
String choice;
Scanner sc = new Scanner(System.in);
System.out.println("Choices: a-Circle,b-Square");
choice = sc.next();
if (choice == "a"){
Graphics2D g2d = (Graphics2D) g;
g2d.drawOval(150, 150, 100, 100);
}
else if (choice == "b"){
Graphics2D g2d = (Graphics2D) g;
g2d.drawRect(150, 150, 100, 100);
}
}
}
解决方案
Java 类名应以大写字符开头。我见过的任何教科书或教程都遵循这个标准。以身作则。
使用 Swing 时不要使用扫描仪进行用户输入。而是使用
JOptionPane
.不要使用“==”进行字符串比较。而是使用该
equals(...)
方法。自定义绘画是通过覆盖 a 的
paintComponent(...)
方法来完成的JPanel
。
我建议您通过阅读Swing 教程开始学习 Swing 基础知识。本教程包含大量演示,将向您展示如何更好地构建类以遵循 Swing 指南。
您可以从以下部分开始:
- 定制绘画
- 如何制作对话框
您还可以查看自定义绘画方法以获取更多关于绘制形状的多个实例的示例。
推荐阅读
- ios - iOS 13 上 PWA 和 WKWebView 的状态
- python - 如何使用 selenium 和 python 访问弹出模式 iframe 中的元素
- javascript - 在移动到其他字段集之前验证按钮单击的字段集
- jenkins - Nightwatch.js 无法在 Jenkins 管道上运行
- python - 使用 python 抓取嵌套表
- c - C管道写入/读取双打序列失败
- kotlin - 减号与减号的不同用例是什么?
- wordpress - Wordpress 多站点子域显示服务器空白页 [已解决]
- r - R中折线图和堆积条的不同比例如何区分
- python - 如何为matplotlib中的所有水平网格线添加垂直刻度线?