событие clickbutton, которое открывает новый jframe в отдельном окне для поиска информации - PullRequest
1 голос
/ 01 декабря 2011

Мне было интересно, как я мог бы создать метод, который открывает новый jframe в отдельном окне, которое позволит мне искать информацию.На данный момент у меня есть кнопка с надписью «щелкни по мне», однако я хочу добавить событие, в результате которого после щелчка откроется новое окно, в котором пользователь может ввести строку для поиска информации.Должен ли я создать новый класс для Jframe?любые советы и код будет принята с благодарностью.Спасибо!

Ответы [ 3 ]

3 голосов
/ 01 декабря 2011

Это зависит от списка функций, который будет у вас во втором окне. Если список функций довольно расширен, то лучше иметь отдельный класс, также JFrame не требуется, даже JDialog сделает.

Ниже приведен пример кода, показывающего, как открыть JDialog при нажатии кнопки:

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class TestFrameOnFrame extends JFrame implements ActionListener{

    public TestFrameOnFrame(){
        JButton button = new JButton("Show New Frame");
        button.addActionListener(this);
        this.add(button);
        this.pack();
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setVisible(true);
    }
    @Override
    public void actionPerformed(ActionEvent e) {
        JDialog dialog = new JDialog(this);
        dialog.setTitle("Search Dialog");
        dialog.add(new JLabel("Just a test"));
        dialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
        dialog.setVisible(true);
    }

    public static void main(String[] args) {
        new TestFrameOnFrame();
    }
}
2 голосов
/ 01 декабря 2011

Предложения:

  • Не используйте второй JFrame.Вместо этого отобразите JDialog или JOptionPane, который зависит от исходного JFrame.
  • Вы можете использовать несколько классов или создать графический интерфейс в текущем классе, в зависимости от того, насколько сложными являются вещи и насколько вы заботитесь о поддержке этого кода позже.,Хотя обычно лучше разделять разные задания в разных классах.
  • Избегайте создания подклассов окон верхнего уровня, таких как JFrames и JDialogs.Обычно лучше, чтобы ваш код был ориентирован на создание JPanels и затем использование JPanels в любом окне верхнего уровня, необходимого для их отображения.
  • Обязательно изучите учебники Swing, так как вся информация, необходимая для созданияэто можно найти там.
  • Что касается примера кода, то на этом форуме можно найти много интересного, некоторые из них даже являются хорошим кодом.
0 голосов
/ 01 декабря 2011

В зависимости от сложности этого «2-го кадра», вы можете использовать внутренний класс или сделать его отдельным. В любом случае, просто попросите прослушиватель событий на вашей кнопке запустить экземпляр этого нового класса, который либо создает, либо создает новый Jframe и устанавливает его в видимое состояние.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...