Форум программистов, компьютерный форум, киберфорум
Java: GUI, графика
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 23.02.2023
Сообщений: 9

Перейти на другую страницу меню в Java

23.02.2023, 06:55. Показов 1063. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всех приветствую!
Господа, такая проблема: пишу своё первое приложение на Java и никак не могу разобраться, как по кнопке мне перейти от одного класса к другому. Классы расположены в одном пакете, получается разными файлами. Всё, что смог найти за неделю активных поисков это переходы в пределах одного файла, а мне надо в другой. Вот как выглядит код в первом файле(Main):
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
package company;
 
import javax.swing.*;
import java.awt.*;
 
public class Main extends JFrame { // создаём класс и наполняем его функционалом, наследуемым от JS
 
    //запускаем приложение
    public static void main(String[] args) {
        Main start = new Main(); // создаём объект
        start.setVisible(true); // показываем приложение пользователю
 
    }
 
    // конструктор с глобальными настройками приложения
    public Main() {
        super("CarDiagnost"); // Название
        super.setSize(1080,720); // размеры по умолчанию
        super.setLocationRelativeTo(null); // положение в центре экрана
        super.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // остановка работы приложения при его закрытии
 
        Main frame1 = new Main(); // добавляем стартовый экран
 
        // контейнер с объектами приложения
        Container container = super.getContentPane();  // создаём контейнер для всех объектов испоользуемых в приложении
        container.setLayout(new GridLayout(3,3,2,2)); // создаём сетку приложения
 
        JButton start_button = new JButton("Начать"); // добавляем кнопку начала работы
                start_button.addActionListener(e -> { // назначаем действие на кнопку
                    frame1.setVisible(false); // скрываем стартовый экран
                    frame2.setVisible(true); // показываем экран главного меню
                });
                start_button.setBounds(340, 500, 400, 100);
 
        // добавляем содержимое контейнера на стартовый экран
                container.add(start_button);
 
    }
 
}
А вот как во втором(MainMenu):
Java
1
2
3
4
5
6
7
8
9
package company;
 
 
 
public class MainMenu extends Main {
 
    MainMenu frame2 = new MainMenu();
 
}
Заранее спасибо!
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.02.2023, 06:55
Ответы с готовыми решениями:

Перейти на другую страницу
Добрый день! я совсем новичек. помогите пожалуйста. как перейти на другую страницу по нажатию кнопки. Button1_Click на About.aspx? Заранее...

Не могу перейти на другую страницу!
Здравствуйте Уважаемые мастера! У меня тут проблема возникла: поставил сайт, все работает в мозиле, но не работает в других браузерах, т.е....

Как перейти на другую страницу
<?php include "check.php"; ?> <form id="myform" name="theform" class="group" action="<?php echo $_SERVER ?>" method="POST"> В check.php...

7
 Аватар для Kukstyler
1260 / 870 / 268
Регистрация: 02.04.2009
Сообщений: 3,306
23.02.2023, 20:31
absurd_customs, во-первых, удалите создание экземпляра самого себя в конструкторе класса Main.
Во-вторых, для общения классов между собой, создавайте соответствующие методы. Каждый класс должен содержать методы по которым другие классы могут общаться с ним.
0
0 / 0 / 0
Регистрация: 23.02.2023
Сообщений: 9
24.02.2023, 01:04  [ТС]
А можно поподробнее, какой это должен быть метод?
0
 Аватар для Kukstyler
1260 / 870 / 268
Регистрация: 02.04.2009
Сообщений: 3,306
24.02.2023, 11:47
absurd_customs,

Java
1
2
3
4
5
6
7
8
9
10
11
public class SomeClass { 
    private String someInfo; 
    
    public Person() {
        this.someInfo = "I am info from SomeClass";
    }
    
    public String getSomeInfo() {
        return this.someInfo
    }
}
Затем из другого класса можно вызывать метод getSomeInfo() таким образом получая значение из private String someInfo
0
0 / 0 / 0
Регистрация: 23.02.2023
Сообщений: 9
27.02.2023, 01:05  [ТС]
Простите, но я видимо совсем затупок... Оно не работает
Java
1
2
3
4
5
JButton start_button = new JButton("Начать"); // добавляем кнопку начала работы
                start_button.addActionListener(e -> { // назначаем действие на кнопку
                    public getSomeInfo()// показываем экран главного меню
                    }
                });
другой класс:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class MainMenu extends JFrame {
 
    public static void main(String[] args) {
 
        public String someInfo{
            this.someInfo = "I am info from SomeClass";
        }
 
        public String getSomeInfo() {
            return this.someInfo;
        }
 
    }
 
}
0
 Аватар для Kukstyler
1260 / 870 / 268
Регистрация: 02.04.2009
Сообщений: 3,306
03.03.2023, 01:01
Лучший ответ Сообщение было отмечено absurd_customs как решение

Решение

absurd_customs,

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
 
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JScrollPane;
 
public class Window extends JFrame {
    private JButton button = new JButton("Get Number"); 
    private DefaultListModel<Integer> listModel = new DefaultListModel();
    private JList<Integer> list = new JList<>(listModel);
    private Number number = new Number();
    
    public Window() {
        super.setTitle("Window");
        this.setSize(800, 600);
        this.setLocationRelativeTo(null);
        
        this.button.addActionListener(this::buttonClick);
        
        this.getContentPane().setLayout(new FlowLayout(FlowLayout.CENTER));
        this.getContentPane().add(button);
        this.getContentPane().add(new JScrollPane(list));
        
        this.setVisible(true);
        this.setDefaultCloseOperation(EXIT_ON_CLOSE);
    }
    
    private void buttonClick(ActionEvent e) {
        int currentNumber = number.getNumber();  // <--------------------------------------------
        listModel.addElement(currentNumber);
        list.ensureIndexIsVisible(currentNumber - 1);
    }
    
    public static void main(String[] args) {
        new Window();
    }
}
 
class Number {
    int num = 1;
    
    public int getNumber(){
        return num++;
    }
}
1
0 / 0 / 0
Регистрация: 23.02.2023
Сообщений: 9
03.03.2023, 04:27  [ТС]
Я понял, в чём была ошибка. Мне сказали, что каждый класс нужно разносить по разным файлам и это сбило меня с толку, ведь нигде в интернете я не видел, чтоб так делали. Спасибо, буду переделывать
0
 Аватар для Kukstyler
1260 / 870 / 268
Регистрация: 02.04.2009
Сообщений: 3,306
06.03.2023, 13:48
absurd_customs, не имеет значения в каком файле класс, в том-же или в другом. Главное, надо понять, что он сам (класс) должен обеспечить метод(ы) извлечения из него информации и/или исполнения какого-либо его действия.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.03.2023, 13:48
Помогаю со студенческими работами здесь

Перейти на другую страницу. XAML
нужно обработать клик, чтоб перейти на другую страницу( DinPage.xaml ) при нажатие на кнопку Din_Click вот у нас часть XAML кода...

Как автоматически перейти на другую страницу?
Задание: Сделать index.php, который при запросе вида index.php?page=name выводит страницу с url=name (в противном случае ничего не...

Не получается перейти на другую страницу ejs
Не получается перейти на другую страницу ejs. Index.ejs &lt;h1&gt;Index page&lt;/h1&gt; &lt;a href=&quot;/about&quot; &gt;About-1....

Synapse. Перейти на другую страницу после авторизации
Здравствуйте! начал разбираться в Synapse. Не могу понять как перейти на страницу Settings после авторизации, авторизацию проходит,...

Как перейти на другую страницу mvc angulur
Добрый день Как при нажатии на ссылку или кнопку перейти на другую страницу? Есть route в angular там при нажатии на ссылку можно...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru