Cоздал Dialog:
Все было нормально, пока я не решил создать кнопку, при нажатию на которую происходило создание другого фрейма. Он создается и выводится на экран, но он не активен (то есть я не могу работать с ним). Потратил много времени, ничего не вышло. Нужно чтобы всплывающее окно становилось активным, а после закрытия активность переходила в главное окно. setVisible
, enable
- не работают.
Почему баттоны на русском(так при добавлении программа создает, я не трогаю)? Кнопка: добавить игрока.
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.awt.Dimension;
import java.net.URL;
public class AA extends JDialog {
private JPanel contentPane;
private JButton buttonOK;
private JButton button1;
private JButton отсортироватьButton;
private JButton найтиButton;
private JTextField textField1;
private JButton удалитьИгрокаButton;
private JButton button2;
private JRadioButton radioButton1;
private JRadioButton radioButton2;
private JTextField textField2;
private JButton добавитьИгрокаButton;
static Manager Mas= new Manager();
public AA() {
ButtonGroup group = new ButtonGroup();
setTitle("FtManager");
FootballMan a = new FootballMan(30,15,"dasd","dasd","dasd",
"dasd", "dasd", "dasd");
Mas.Add(a);
FootballMan b = new FootballMan(15,30,"dasd","dasd","dasd",
"dasd", "dasd", "dasd");
Mas.Add(b);
radioButton1.setSelected(true);
group.add(radioButton2);
group.add(radioButton1);
setLocation(500,260);
setContentPane(contentPane);
setModal(true);
getRootPane().setDefaultButton(buttonOK);
String path = "1.png";
URL imgURL = AA.class.getResource(path);
ImageIcon icon = new ImageIcon(imgURL);
найтиButton.setIcon(icon);
String path1 = "2.png";
URL imgURL1 = AA.class.getResource(path1);
ImageIcon icon1 = new ImageIcon(imgURL1);
удалитьИгрокаButton.setIcon(icon1);
String path3 = "3.png";
URL imgURL3 = AA.class.getResource(path3);
ImageIcon icon3 = new ImageIcon(imgURL3);
button2.setIcon(icon3);
String path4 = "4.png";
URL imgURL4 = AA.class.getResource(path4);
ImageIcon icon4 = new ImageIcon(imgURL4);
отсортироватьButton.setIcon(icon4);
button1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e)
{
JFrame frame = new JFrame("Все игроки");
frame.setSize(350,200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocation(160,300);
frame.setVisible(true);
JTextArea textAr= new JTextArea();
Mas.cout(textAr);
frame.add(textAr);
}
});
отсортироватьButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Mas.sort();
}
});
найтиButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JTextArea textAr= new JTextArea();
frame(textAr,"Найденный игрок");
Mas.search(textField1.getText(),textAr);
}
});
удалитьИгрокаButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
Mas.Delete(textField1.getText());
JTextArea textAr= new JTextArea();
frame(textAr,"Уменьшенный массив");
Mas.cout(textAr);
}
});
button2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
boolean key;
if(radioButton1.isSelected()==true){
key=true;
}
else{ key=false;}
Mas.editing(textField1.getText(),key,textField2);
}
});
textField2.addFocusListener(new FocusAdapter() {
@Override
public void focusGained(FocusEvent e) {
textField2.setText(null);
}
});
textField1.addFocusListener(new FocusAdapter() {
@Override
public void focusGained(FocusEvent e) {
textField1.setText(null);
}
});
/////////// это событие и должно создать активное окно
добавитьИгрокаButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
JFrame frame = new JFrame();
JButton but = new JButton("dsas");
frame.setSize(400,200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocation(400,400);
frame.setVisible(true);
}
});
}
public void frame(JTextArea textAr,String title){
JFrame frame = new JFrame(title);
frame.setSize(400,200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setLocation(400,400);
frame.setVisible(true);
frame.add(textAr);
}
public static void main(String[] args) {
AA dialog = new AA();
dialog.pack();
dialog.setVisible(true);
System.exit(0);
}
}
Были попытки создать не фрейм, а диалог, все так же. Да и к чему? Я знаю, что при создании одиночных фреймов нет проблем с их активностью.
P.S. Я новичок.
Возникает сразу несколько вопросов, например, почему Вы наследуетесь от JDialog вместо JFrame и так далее. Но возможно быстрее будет просто указать Вам работающий код, который Вы наполните своими элементами.
import javax.swing.*;
public class Main extends JFrame {
public Main() {
setTitle("Main Frame");
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JButton jButton = new JButton("Click Here");
jButton.addActionListener(s -> {
new AdditionalFrame();
});
add(jButton);
pack();
}
public static void main(String[] args) {
new Main();
}
}
class AdditionalFrame extends JFrame {
public AdditionalFrame() {
setTitle("Additional Frame");
setVisible(true);
setLocationRelativeTo(null);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
pack();
}
}
При запуске данного приложение откроется Main Frame
окно с одной единственной кнопкой, по нажатию кнопки будет открыто второе окно Additional Frame
, которое появится в середине экрана и на который будет установлен фокус и которое будет полностью clickable.
Надеюсь это поможет двигаться дальше.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Наткнулся на такой термин - "статический полиформизм"Не знал про такое сочетание
Раньше работало на версиях от 41, теперь не работает до 4
Здравствуйте! Пишу авторизацию на C# WPF MVVM в БД MySQL, используя EF6Необходимо написать команду, которая будет выполняться при нажатии на кнопку...