Listener dla rozmiaru okna

0

Witam. Chcę zrobić coś takiego: tworzę okienko i chcę, aby po zmniejszeniu do odpowiedniego rozmiaru (ręcznie - za róg) wykonywało się System.exit();

Nie mam pojęcia jak to zrobić. Próbowałem tak: [url]http://www.nopaste.pl/8dt[/url]

0

zobacz ComponentListener, ma metodę componentResized(ComponentEvent e)
http://java.sun.com/j2se/1.4.2/docs/api/index.html

0

Pierwsza sprawa - po co? Zamykanie aplikacji jako reakcja na nadmierne zmniejszenie okna to działanie zawsze nieoczekiwane dla użytkownika i zawsze traktowane przez niego jako błąd aplikacji.
Poza tym System.exit(), to metoda służąca zasadniczo do awaryjnego zamykania programu. Normalnym sposobem powinno być zamknięcie wszystkich otwartych okien, co dopiero może skutkować zamknięciem aplikacji.
Oto lekko chyba najkrótsza klasa okienka, które potrafi się zamknąć pod takim warunkiem jaki potrzebujesz.

package Testy;
import java.awt.EventQueue;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;

public class NewJFrame extends javax.swing.JFrame
{
    public static void main(String args[])
    {
        EventQueue.invokeLater(new Runnable()
		{ @Override public void run() { new NewJFrame().setVisible(true); } });
    }
	
    public NewJFrame()
    {
	addComponentListener(new ComponentAdapter()
	{
		@Override public void componentResized(ComponentEvent e)
		{	//zamyka okno typu JFrame okna klasy otaczającej
			if(getWidth() < 100 || getHeight() < 100)
				//można usunąć "NewJFrame.this."
				NewJFrame.this.dispose();
		}
	});
        initComponents();
    }

    private void initComponents()
    {
        setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
        setPrefferedSize(new Dimension(400, 300));
    }
}
0

@Olamagato, też uważam pomysł zamykania aplikacji z powodu zmniejszenia przez użytkownika okna za idiotyczny. Obejrzałem również kod zamieszczony przez autora wątku, sprawia wrażenie że autor nie ma pojęcia o javie. Nie jest również jasne co chce napisać: główna klasa dziedziczy po JApplet, ale nie zawiera metod charakterystycznych dla apletów, zawiera natomiast metodę main(). Jest to o tyle istotne, że System.exit() nie ma żadnego wpływu na działanie apletu.
pozdrawiam

1 użytkowników online, w tym zalogowanych: 0, gości: 1