Witam,
Napisałem taką metodę:
public void CreateFontFrame()
{
// Obiekty pomocnicze
int sizeX = 500;
int sizeY = 80;
// Tworzenie obiektów składających się na ramkę wyboru czcionki
JButton apply = new JButton(this.StringApplyButton);
JButton exit = new JButton("exit");
JFrame frame = new JFrame(this.StringFontFrameName);
GridLayout grid = new GridLayout(2, 3, 10, 0);
JComboBox size = new JComboBox();
JLabel sizeLabel = new JLabel(this.StringFontSizeLabel);
JComboBox type = new JComboBox();
JLabel typeLabel = new JLabel(this.StringFontTypeLabel);
// Konfiguracja obiektów składających się na ramkę wyboru czcionki
apply.setActionCommand(this.StringApplyButton);
apply.addActionListener(this);
exit.setActionCommand("duaa");
exit.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
JFrame frame = (JFrame) ((JButton) e.getSource()).getParent();
frame.dispose();
}
});
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
frame.setLayout(grid);
frame.setLocation((this.GE.getCenterPoint().x - (sizeX >> 1)), (this.GE.getCenterPoint().y - (sizeY >> 1)));
frame.setResizable(false);
frame.setSize(sizeX, sizeY);
size.setName("size");
type.setName("type");
// Generacja dostępnych typów czcionek
for(Font str: this.GE.getAllFonts())
{
type.addItem(str.getName());
// Wybór aktualnego typu czcionki
if(this.FontType.equals(str.getName()))
{
type.setSelectedIndex(type.getItemCount() - 1);
}
}
// Generacja dostępnych rozmiarów czcionek
for(int i = 4; i < 51; i++)
{
size.addItem(i);
}
// Wybór aktualnego rozmiaru czcionki
size.setSelectedIndex(this.FontSize - 4);
//
frame.addWindowListener(new WindowAdapter()
{
@Override
public void windowOpened(WindowEvent we)
{
// Blokada głównej ramki aplikacji
APNotepad.this.disable();
}
@Override
public void windowClosing(WindowEvent we)
{
// Odblokowanie głównej ramki aplikacji
APNotepad.this.enable();
// Zniszczenie ramki wyboru czcionki
((JFrame) we.getSource()).dispose();
}
});
// Dodawanie obiektów do ramki wyboru czcionki
frame.add(typeLabel);
frame.add(sizeLabel);
frame.add(exit);
frame.add(type);
frame.add(size);
frame.add(apply);
frame.show();
}
Problem polega na tym, że nie potrafię zamknąć stworzonego okienka przyciskiem "exit". Fragment kodu za to odpowiedzialny:
exit.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
JFrame frame = (JFrame) ((JButton) e.getSource()).getParent();
frame.dispose();
}
});
Oczywiście teraz to nie działa, a widoczny kod to tylko kolejna z moich rozpaczliwych prób rozwiązania tego problemu.
Dodam tylko, że nie chodzi mi o zamknięcie całej aplikacji "System.exit(0)", tylko jednego okienka (może ich być np 10.).
Pozdrawiam.