Так что я работаю над лабиринтом, но для собственного предпочтения я хочу, чтобы он тоже выглядел привлекательно, поэтому я получил код для работы, однако он не совсем графический.По сути, мне не нужна помощь, чтобы лабиринт работал, мне нужна помощь, чтобы улучшить его внешний вид.Поэтому я пытаюсь выяснить, могу ли я каким-то образом преобразовать то, что у меня есть, в какие-то кнопки, которые отображаются в виде определенного цвета, а не «х», «» »."-" а также "#".Я также отмечу, что я очень хорошо разбираюсь в кодировании и, возможно, не пойму, если вы скажете мне «сделайте это», поэтому, если кто-то достаточно любезен, чтобы помочь мне, пожалуйста, наберитесь терпения, так как мне трудно просто «сделать это»
Я попытался преобразовать свой текст в кнопки, чтобы я мог просто раскрасить свои кнопки и сделать каждый из своих «х», «» »."-" "#" представлены цветами или, если я могу (что было бы предпочтительным вариантом), заменить их изображениями типа X a Line a Barrier и т. д., однако я не смог заставить его работать какЯ буквально сижу здесь, невежественный .. Как будто я пытался искать в Интернете, но я просто не знаю, что искать.
здесь у меня есть весь мой код, и вы можете видеть, что я имею в виду, я хочу большевизуально привлекательный ... Я бы предпочел иметь какие-то кнопки с цветом или изображениями для представления текстов.
package maze;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class maze {
static JFrame mainFrame = new JFrame("MazeProgram");
static JLabel mazeLabel = new JLabel();
static boolean exitFound = false;
static char[][] puzzle = { { '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#' },
{ '#', ' ', ' ', ' ', '#', ' ', '#', '#', '#', '#', ' ', 'X', '#' },
{ '#', '#', ' ', '#', '#', ' ', '#', ' ', ' ', '#', ' ', '#', '#' },
{ '#', ' ', ' ', ' ', ' ', ' ', '#', ' ', ' ', ' ', ' ', ' ', '#' },
{ '#', ' ', '#', ' ', ' ', '#', '#', '#', '#', ' ', '#', '#', '#' },
{ '#', '#', '#', ' ', '#', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '#' },
{ '#', ' ', ' ', ' ', ' ', '#', '#', ' ', ' ', '#', '#', '#', '#' },
{ '#', '#', ' ', '#', ' ', ' ', ' ', ' ', ' ', '#', ' ', '#', '#' },
{ '#', ' ', '#', ' ', ' ', ' ', '#', '#', ' ', ' ', ' ', ' ', '#' },
{ '#', ' ', '#', '#', ' ', '#', '#', ' ', '#', ' ', '#', ' ', '#' },
{ '#', ' ', ' ', ' ', ' ', '#', '#', ' ', ' ', ' ', '#', '#', '#' },
{ '#', ' ', '#', '#', '#', ' ', '#', ' ', '#', ' ', ' ', '#', '#' },
{ '#', ' ', ' ', ' ', ' ', ' ', '#', ' ', '#', ' ', ' ', ' ', '#' },
{ '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#', '#' }, };
public static void main(String[] args) throws InterruptedException {
initializeWindow();
move(1, 1);
printMaze();
}
public static void initializeWindow() {
mainFrame = new JFrame("Maze Solver");
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setLayout(null);
mainFrame.setSize(1920, 1080);
mainFrame.setLocationRelativeTo(null);
mazeLabel.setHorizontalAlignment(JLabel.CENTER); // centers the Component
mazeLabel.setSize(1920, 1080); // sets maze label size
mazeLabel.setFont(new Font("", Font.BOLD, 28));
mainFrame.add(mazeLabel);
mazeLabel.setVisible(true);
mainFrame.setVisible(true);
}
public static void printMaze() { // prints the maze to a label
mazeLabel.setText(""); // clear the label
String tempLine = "<html><pre>"; // stores the maze from the char array to a string set up for html to allow new
// lines. pre tells html to keep multiple spaces
for (int j = 0; j < puzzle.length; j++) { // changes the row number
for (int i = 0; i < puzzle[0].length; i++) { // changes the column number.
tempLine = tempLine + puzzle[j][i] + " "; // add one character from the maze to the string
}
tempLine = tempLine + "<br>"; // add a line break to the string
}
tempLine = tempLine + "</html>";
mazeLabel.setText(tempLine); // put the string into the label
}
public static void move(int row, int col) throws InterruptedException {
if (puzzle[row][col] == 'X') { // checks if the maze is at the end
exitFound = true;
} else {
puzzle[row][col] = '-'; // change the current location symbol to indicate that the spot has been visited
//Thread.sleep(50);
if ((exitFound == false) && (puzzle[row][col + 1] == ' ' || puzzle[row][col + 1] == 'X')) {
move(row, col + 1);
}
if ((exitFound == false) && (puzzle[row + 1][col] == ' ' || puzzle[row + 1][col] == 'X')) {
move(row + 1, col);
}
if ((exitFound == false) && (puzzle[row][col - 1] == ' ' || puzzle[row][col - 1] == 'X')) {
move(row, col - 1);
}
if ((exitFound == false) && (puzzle[row - 1][col] == ' ' || puzzle[row - 1][col] == 'X')) {
move(row - 1, col);
}
if (exitFound == true) {
puzzle[row][col] = '.';
//Thread.sleep(50);
}
}
}
}
Мои ожидаемые результаты - получить ввод этого текста и преобразовать отображение в кнопки, которыея могу размещать изображения на кнопках или, по крайней мере, на кнопках, для которых я могу изменять цвета, а фактический вывод - это просто текст, и я понятия не имею, как его преобразовать.