gpt4 book ai didi

java - 将 args 和 stdin 从 main 传递到类

转载 作者:行者123 更新时间:2023-12-02 07:35:41 25 4
gpt4 key购买 nike

有人可以根据我所掌握的信息给我一个示例,说明如何将命令行参数或标准输入从 main 传递到名为 drawOnGrid 的类吗?我很难理解它。基本上我需要使用“g.drawString (argOne, 10, 10);”而不是drawOval 或drawLine。我已附上我的代码。

import java.awt.*;
import javax.swing.*;
import java.util.*;

public class Tictactoe extends JFrame {

//construct a figurePanel
public Tictactoe() {

Container RandomTicTacToePanel = getContentPane();
RandomTicTacToePanel.setLayout(new GridLayout(3, 3));


for (int i = 0; i < 9; i++) {
RandomTicTacToePanel.add(new drawOnGrid());
}
}

//Main method
public static void main(String[] args) {

String argOne;
String argTwo;

Scanner in = new Scanner(System.in);

int length = args.length;
if (length <= 0) {
System.out.println("Please enter player One's symbol: ");
argOne = in.nextLine();
System.out.println("Please enter player Two's symbol: ");
argTwo = in.nextLine();
in.close();
}

Tictactoe Tframe = new Tictactoe();
Tframe.setTitle("Tic Tac Toe Panel: Random Entries");
Tframe.setSize(350, 350);
Tframe.setResizable(true);
Tframe.setLocationRelativeTo(null);
Tframe.setVisible(true);
Tframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

class drawOnGrid extends JPanel {

//overide the paintComponent
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);

int random = (int) (Math.random() * 3);

for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {

if (random == 0) {
System.out.print(" ");
} else if (random == 1) {
g.drawOval(10, 10, getWidth() - 20, getHeight() - 20);
} else if (random == 2) {
g.drawLine(10, 10, getWidth() - 10, getHeight() - 10);
g.drawLine(getWidth() - 10, 10, 10, getHeight() - 10);

}
}

}
}
}
}

我真的很感激。谢谢。

最佳答案

试试这个:

import java.awt.*;
import javax.swing.*;
import java.util.*;

public class Tictactoe extends JFrame {

//construct a figurePanel
public Tictactoe(String text) {

Container RandomTicTacToePanel = getContentPane();
RandomTicTacToePanel.setLayout(new GridLayout(3, 3));


for (int i = 0; i < 9; i++) {
RandomTicTacToePanel.add(new drawOnGrid(text));
}
}

//Main method
public static void main(String[] args) {

String argOne = null; // Init with null
String argTwo = null; // Init with null

Scanner in = new Scanner(System.in);

int length = args.length;
if (length <= 0) {
System.out.println("Please enter player One's symbol: ");
argOne = in.nextLine();
System.out.println("Please enter player Two's symbol: ");
argTwo = in.nextLine();
in.close();
} else if(length == 1) {
argOne = args[0];
} else if(length == 2) {
argOne = args[0];
argTwo = args[1];
}

Tictactoe Tframe = new Tictactoe(argOne);
Tframe.setTitle("Tic Tac Toe Panel: Random Entries");
Tframe.setSize(350, 350);
Tframe.setResizable(true);
Tframe.setLocationRelativeTo(null);
Tframe.setVisible(true);
Tframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}

class drawOnGrid extends JPanel {

private String text;

public drawOnGrid(String text) {
this.text = text;
}

//overide the paintComponent
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);

int random = (int) (Math.random() * 3);

for (int i = 0; i < 3; i++) {
for (int j = 0; j < 3; j++) {

if (random == 0) {
System.out.print(" ");
} else if (random == 1) {
g.drawOval(10, 10, getWidth() - 20, getHeight() - 20);
} else if (random == 2) {
g.drawLine(10, 10, getWidth() - 10, getHeight() - 10);
g.drawLine(getWidth() - 10, 10, 10, getHeight() - 10);

}
}

}
}
}

关于java - 将 args 和 stdin 从 main 传递到类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12268762/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com