Я написал браузер для стороннего проекта, в настоящее время у меня есть этот код:
ReadHTML - это мой конструктор, а загрузка веб-страницы - это метод, который я использую для загрузки веб-страницы, что должно произойти, когда пользователь нажимает назад, он должен вызывать прослушиватель действий, а затем проверять, есть ли у стека некоторый контент, однако я протестировали это и обнаружили, что код достигнет прослушивателя действий, и тест стека завершится неудачно, и я верю, что моя программа не хранит содержимое в стеке, я был бы признателен, если бы кто-нибудь мог указать, где я ошибаюсь, или лучший способ сделать это, я был бы очень благодарен.
Если у вас недостаточно кода или мне нужно добавить дополнительную информацию, я могу отредактировать и опубликовать довольно быстро, спасибо заранее!
Stack<String> backStack = new Stack<String>();
Stack<String> forwardStack = new Stack<String>();
boolean stackTest = false;
private void loadWebPage(String userInput) {
if (stackTest = true) {
forwardStack.push(urlBox.getText());
stackTest = false;
} else {
backStack.push(urlBox.getText());
}
try {
webWindow.setPage(userInput);
urlBox.setText(userInput);
} catch (Exception e) {
try {
File file = new File(userInput);
webWindow.setPage(file.toURI().toURL());
} catch (MalformedURLException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
}
}
public ReadHTML() {
forward.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent forwardPress) {
if (!forwardStack.empty()) {
loadWebPage(forwardStack.pop());
}
}
});
back.addActionListener(
new ActionListener() {
public void actionPerformed(ActionEvent backPress) {
if (!backStack.empty()) {
stackTest = true;
loadWebPage(backStack.pop());
}
}
});
}
Это выглядит как
if (stackTest = true) {
Должно быть
if (stackTest == true) {
if (stackTest) {