Я делаю программу рисования, которая считывает команды из текстового файла, когда файл выбран, программа должна проверять команды для правильных параметров ввода. текстовый файл, открытый в программе, включает;Графический рисунок валидации виджета/AWT-файла
Move 100 100 // (move pen to X Y)
MIVE 100 50 // (Invalid comamnd spelt incorrectly)
move x y // (invalid command not an integer)
Line 20 100 // (draw a line at X Y)
Проблема, которую я имею в том, что при открытии текстового файла в программу, она импортирует текстовый файл, но это не проверка его в JTextArea
и рисования линии в выбранном X/Y со- ординаты. Может ли кто-нибудь указать мне в правильном направлении?
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class Instructionpanel extends JPanel {
JTextArea instructions;
// Move line text clear
public Instructionpanel(GraphicsPanel graphicspanel) {
instructions = new JTextArea(
"This is where the instructions will displayed", 10, 50); // Rows
// *
// columns
instructions.setLineWrap(true);
instructions.setWrapStyleWord(true);
instructions.setEditable(true);
JScrollPane areaScrollPane = new JScrollPane(instructions);
areaScrollPane
.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
add(areaScrollPane);
// add(instructions);
}
public void processFile(File file) {
Scanner scan = null;
try {
scan = new Scanner(file);
} catch (FileNotFoundException el) {
el.printStackTrace();
}
String allInstructions = "";
String allInstructions1 = "";
String instruction = "";
while (scan.hasNext()) {
instruction = scan.nextLine() + "\n";
// check or validate the instruction
allInstructions1 += validateInstruction(instruction);
}
instructions.setText(allInstructions1);
}
public String validateInstruction(String orig) {
String returnString = orig;
// Do all the checking
// Convert string to an array
String command = "";
String[] instructionArray = orig.split(" ");
int x, y = 0;
switch(instructionArray[0])
{
case "MOVE":
// Check there three parameters
doMove(instructionArray); {
// And they are integers
instructions = new JTextArea(" Incorrect parameter type i.e 100");
instructions = new JTextArea(":incorrect number of parameters i.e Line 100 200");
try {
GraphicsPanel.setPos (Integer.parseInt(instructionArray[1]),Integer.parseInt(instructionArray[2]));
}
catch (NumberFormatException e)
{
instructions = new JTextArea(" only numbers are allowed ");
}
}
break;
case "LINE":
doLine (instructionArray);
// Check there three parameters
if (instructionArray.length != 3) {
// And they are integers
instructions = new JTextArea(" Incorrect parameter type i.e 100");
instructions = new JTextArea(":incorrect number of parameters i.e Line 100 200");
try {
GraphicsPanel.drawLine (Integer.parseInt(instructionArray[1]),Integer.parseInt(instructionArray[2]));
} catch (NumberFormatException e) {
instructions = new JTextArea(" only numbers are allowed ");
}break;
}}
return orig;}
private void doLine(String[] instructionArray) {
// TODO Auto-generated method stub
}
private void doMove(String[] instructionArray) {
// TODO Auto-generated method stub
}
}
Чтобы лучше помочь, отправьте сообщение [mcve]. Чтобы сделать его MCVE, он должен быть завершен (в одной копии/вставке), поэтому ему нужно будет жестко закодировать данные в исходном коде как «String» и включить основной метод для размещения на экране. Кстати. Я отмечаю, что за исключением первого вопроса, который вы задали, вы не получили никаких ответов. Кроме того, вам сообщили, по крайней мере, один предыдущий случай опубликовать SSCCE (что эквивалентно MCVE) и до сих пор не смогли понять преимущества этого. Возможно, вам захочется задуматься над этими моментами, если вы хотите получить успешные решения на SO. –
Да, я признал, однако, что я не самый знакомый пользователь, когда дело доходит до java, начиная с нуля - это не вариант моего назначения в течение дня. – Adam
* ".. мое задание должно состояться через день" * Затем вам следует начать раньше и/или использовать лучшее управление временем. И в будущем, пожалуйста, не ошибайтесь в своих проблемах, для наших. Люди, которые помогают бесплатно, обычно предпочитают помогать другим с хорошими навыками управления временем, по крайней мере, достаточно времени, чтобы следовать их советам. –