有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java打开的图像不会出现

//编辑:由我编辑的问题,因为我不想在这里搞砸;) 你好这里有两门课我有一个问题。在程序中,where是一个具有打开子类并显示图像的类,它工作得很好,但当我为两个类编写一些代码时,它不起作用(在JPanel中显示图像)。我知道这太多了,但没有办法;]

public class przegladarka_3 {

public static void main(String[] args){
   uklad_gl okno_gl=new uklad_gl(true,800,600,"Przeglądarka plików graficznych 1.0 alfa");
   okno_gl.setResizable(false);
   okno_gl.setLocationRelativeTo(okno_gl);   
   okno_gl.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}


class uklad_gl extends JFrame{

JPanel rozklad=new JPanel(); 
JPanel rozklad2;
JScrollPane zwijanie; //panel dla suwaków
JMenuBar pasek_meni; 
JMenuItem wybor;
JMenu[] pdp; //Plik Dodaj Pomoc

String[] tab_pasek;
String[] tab1; //wybory dla Plik
String[] tab2; //Dodaj
String[] tab3; //Pomoc

JFileChooser otworz,zapisz_jako;
ActionListener wykonaj_plik=new uklad_gl.klasa_zadan();
ActionListener wykonaj_dzialanie=new uklad_gl.klasa_zadan();
ActionListener wykonaj_pomoc=new uklad_gl.klasa_zadan();


public uklad_gl(boolean b, int wys, int szer, String tytul){  
setVisible(b);
setSize(wys, szer);
setTitle(tytul);


rozklad2=new JPanel(new BorderLayout());
add(rozklad,BorderLayout.PAGE_END);
add(rozklad2,BorderLayout.LINE_END);

zwijanie=new JScrollPane(rozklad);

pasek_postepu=new JProgressBar(1,100);
pasek_postepu.setValue(0);
pasek_postepu.setStringPainted(true);
pasek_postepu.setBounds(600, 200, 110,500);

stworz_caly_pasek_meni("Plik,Dodaj,Pomoc");  

} 



public void stworz_caly_pasek_meni(String lista_pasek){

tab_pasek=lista_pasek.split(",");
pasek_meni=new JMenuBar();
pdp=new JMenu[tab_pasek.length];
rozklad.add(pasek_meni);
setJMenuBar(pasek_meni);

for(int i=0;i<tab_pasek.length;i++){

        pdp[i]=new JMenu(tab_pasek[i]);
        setJMenuBar(pasek_meni);
        pasek_meni.add(pdp[i]);

        if(i==0) stworz_Plik("Otwórz,Zapisz,Zapisz jako...,Zamknij",wykonaj_plik);
        else if(i==1) stworz_Dzialanie("Odcienie szarości,Sepia,Negatyw,Nasycenie barw",wykonaj_dzialanie);
        else  stworz_Pomoc("O mnie, O programie, Najczęściej zadawane pytania",wykonaj_pomoc);

    } 
    }

public void stworz_Plik(String lista_Plik,ActionListener e){

tab1=lista_Plik.split(",");

for(int i=0;i<tab1.length;i++){

        wybor=new JMenuItem(tab1[i]);
        pdp[0].add(wybor);
        wybor.addActionListener(e);

   } 
  }

 public void stworz_Dzialanie(String lista_Dodaj,ActionListener e){

 tab2=lista_Dodaj.split(",");

 for(int i=0;i<tab2.length;i++){

        wybor=new JMenuItem(tab2[i]);
        pdp[1].add(wybor);
        wybor.addActionListener(e);

   }
  }

public void stworz_Pomoc(String lista_Pomoc,ActionListener e){

tab3=lista_Pomoc.split(",");

for(int i=0;i<tab3.length;i++){

        wybor=new JMenuItem(tab3[i]);
        pdp[2].add(wybor);
        wybor.addActionListener(e);

   }
  }

   public class klasa_zadan implements ActionListener,WindowListener,ComponentListener,MouseListener{
  BufferedImage obraz;


  public void actionPerformed(ActionEvent e){
  String polecenie=e.getActionCommand();

  if(polecenie.equals("Otwórz")) try {
    otworz();
} catch (IOException ex) {
    Logger.getLogger(uklad_gl.class.getName()).log(Level.SEVERE, null, ex);
}


        }  

public void otworz() throws IOException{
  otworz=new JFileChooser("C://");
  FileNameExtensionFilter rastrowa=new FileNameExtensionFilter("Pliki grafiki rastrowej(.jpeg,.png.,gif...)", "jpeg","jpg", "gif","png","bmp");

  otworz.setFileFilter(rastrowa);

  int a=otworz.showOpenDialog(null);

  if(a==JFileChooser.APPROVE_OPTION){
  String nazwa_pliku=otworz.getSelectedFile().getAbsolutePath();
  String roz=nazwa_pliku.substring(nazwa_pliku.lastIndexOf('.')+1);

  obraz=ImageIO.read(otworz.getSelectedFile());         
  rozklad=new JPanel(){

     protected void paintComponent(Graphics g){
            Graphics g2 = g.create();
            g2.drawImage(obraz, 0, 0, getWidth(), getHeight(), null);
            g2.dispose();             
        }         
 };   
 add(rozklad);
 revalidate();  
 repaint();   
 }
 }  
 }
 }

新课程

public class klasa_zadan extends JFrame implements ActionListener,WindowListener,ComponentListener,MouseListener{

BufferedImage obraz;

JFileChooser otworz,zapisz_jako;

public void actionPerformed(ActionEvent e){
    try {
        String polecenie=e.getActionCommand();

        if(polecenie.equals("Otwórz"))
            otworz();

        if(polecenie.equals("Zapisz jako...")) zapisz_jako();

        if(polecenie.equals("Zamknij")) zamknij();
    } catch (IOException ex) {
        Logger.getLogger(zadania_plik.class.getName()).log(Level.SEVERE, null, ex);
    }
}  

public void otworz() throws IOException{
  otworz=new JFileChooser("C://");

  FileNameExtensionFilter rastrowa=new FileNameExtensionFilter("Pliki grafiki rastrowej(.jpeg,.png.,gif...)", "jpeg","jpg", "gif","png","bmp");
  otworz.setFileFilter(rastrowa);
  int a=otworz.showOpenDialog(null);

  if(a==JFileChooser.APPROVE_OPTION){
  String nazwa_pliku=otworz.getSelectedFile().getAbsolutePath();
 // String roz=nazwa_pliku.substring(nazwa_pliku.lastIndexOf('.')+1);

  final BufferedImage obraz=ImageIO.read(otworz.getSelectedFile()); 
  final JPanel rozklad=new JPanel(new BorderLayout()){
     protected void paintComponent(Graphics g){
           Graphics g2 = (Graphics2D)g;
           g2.drawImage(obraz, 0, 0,this);
           //g2.dispose();             
        }         
 };  
 Dimension rozmiar=new Dimension(obraz.getWidth(),obraz.getHeight()); 
 add(rozklad);
 revalidate();  
 repaint();   
 }
 }  

 public void zapisz() throws IOException{  
     File plik=zapisz_jako.getSelectedFile();
     String nazwa_pliku=plik.getAbsolutePath();
     String roz=null;
     roz=nazwa_pliku.substring(nazwa_pliku.lastIndexOf(".")+1); 
     ImageIO.write(obraz, roz, plik);         //niewiadomo, czy ta metoda działa!!!!                 
  } 


 public void zapisz_jako(){ //zapisanie pliku do innego formatu jest uzależnione od rodzaju pliku graficznego
 zapisz_jako=new JFileChooser("C://");
 zapisz_jako.setSelectedFile(new File("beznazwy.jpg")); //tworzy plik, który będzie zapisany z domyślną nazwą
 zapisz_jako.setFileSelectionMode(JFileChooser.FILES_ONLY);

 FileNameExtensionFilter rastrowa=new FileNameExtensionFilter("Pliki grafiki rastrowej(.jpeg,.png.,gif...)", "jpeg","jpg", "gif","png","bmp");
 zapisz_jako.setFileFilter(rastrowa);

 int a=zapisz_jako.showSaveDialog(null);

 if(a==JFileChooser.APPROVE_OPTION){  
     File plik=zapisz_jako.getSelectedFile();
     String nazwa_pliku=plik.getAbsolutePath();
     String roz=null;

     if(nazwa_pliku.indexOf(".jpg")==-1 && nazwa_pliku.indexOf(".png")==-1 && nazwa_pliku.indexOf(".gif")==-1){       
         nazwa_pliku+=".jpg"; //zostaw jpg jako domyślny
         roz="jpg";
         plik=new File(nazwa_pliku);      
     }

     else{          
         roz=nazwa_pliku.substring(nazwa_pliku.lastIndexOf(".")+1);            
         try {                
             ImageIO.write(obraz, roz, plik);                
         } catch (IOException ex) {        
             Logger.getLogger(zadania_plik.class.getName()).log(Level.SEVERE, null, ex);  
         }
     }  
 } 
 } 

public void zamknij(){
int tn=JOptionPane.showConfirmDialog(null, 
        "Czy na pewno chcesz zakończyć działanie z programem?","Widaomość",
            JOptionPane.YES_NO_OPTION,0,null);

if(tn==0) System.exit(0);       
} 
}

======================================================

public class uklad_gl extends JFrame{

JPanel rozklad;
JScrollPane zwijanie; //panel dla suwaków

JMenuBar pasek_meni; 
JMenuItem wybor;
JMenu[] pdp; //Plik Dodaj Pomoc

JScrollPane suwak1,suwak2;
JProgressBar pasek_postepu;

String[] tab_pasek;
String[] tab1; //wybory dla Plik
String[] tab2; //Dodaj
String[] tab3; //Pomoc

JFileChooser otworz,zapisz_jako;
ActionListener wykonaj_plik=new zadania_plik();
ActionListener wykonaj_dzialanie=new zadania_dodaj();
ActionListener wykonaj_pomoc=new zadania_pomoc();

public uklad_gl(boolean b, int wys, int szer, String tytul){  
setVisible(b);
setSize(wys, szer);
setTitle(tytul);

rozklad=new JPanel(new BorderLayout());

zwijanie=new JScrollPane(rozklad);

stworz_caly_pasek_meni("Plik,Dodaj,Pomoc");  
stworz_suwaki(wykonaj_plik);

} 

public void stworz_suwaki(ActionListener e){
//jeszcze nie działają
suwak1=new JScrollPane();
suwak2=new JScrollPane();
rozklad.add(suwak1);
rozklad.add(suwak2);   

}

public void stworz_caly_pasek_meni(String lista_pasek){   
tab_pasek=lista_pasek.split(",");
pasek_meni=new JMenuBar();
pdp=new JMenu[tab_pasek.length];
rozklad.add(pasek_meni);
setJMenuBar(pasek_meni);

for(int i=0;i<tab_pasek.length;i++){

        pdp[i]=new JMenu(tab_pasek[i]);
        setJMenuBar(pasek_meni);
        pasek_meni.add(pdp[i]);

        if(i==0) stworz_Plik("Otwórz,Zapisz,Zapisz jako...,Zamknij",wykonaj_plik);
        else if(i==1) stworz_Dzialanie("Odcienie szarości,Sepia,Negatyw,Nasycenie barw",wykonaj_dzialanie);
        else  stworz_Pomoc("O mnie, O programie, Najczęściej zadawane pytania",wykonaj_pomoc);      
  } 
  }

public void stworz_Plik(String lista_Plik,ActionListener e){
tab1=lista_Plik.split(",");

for(int i=0;i<tab1.length;i++){
        wybor=new JMenuItem(tab1[i]);
        pdp[0].add(wybor);
        wybor.addActionListener(e);        
   } 
   }

public void stworz_Dzialanie(String lista_Dodaj,ActionListener e){
tab2=lista_Dodaj.split(",");

for(int i=0;i<tab2.length;i++){   
        wybor=new JMenuItem(tab2[i]);
        pdp[1].add(wybor);

   }
   }

public void stworz_Pomoc(String lista_Pomoc,ActionListener e){
tab3=lista_Pomoc.split(",");

for(int i=0;i<tab3.length;i++){
        wybor=new JMenuItem(tab3[i]);
        pdp[2].add(wybor);
        wybor.addActionListener(e);     
   }
   }  
   }

共 (1) 个答案

  1. # 1 楼答案

    有几个小问题。我认为这是一个很好的例子

    我给了面板一个更合适的尺寸

    假设组件类(JFrame?)是有一个边界布局,我选择了另一个add

    public void otworz() throws IOException {
        JFileChooser otworz = new JFileChooser("C:/"); // Or "C:\\"
    
        FileNameExtensionFilter rastrowa = new FileNameExtensionFilter("Pliki grafikirastrowej(.jpeg,.png.,gif...)", "jpeg", "jpg", "gif", "png", "bmp");
        otworz.setFileFilter(rastrowa);
        int a = otworz.showOpenDialog(null);
        if (a == JFileChooser.APPROVE_OPTION) {
            String nazwa_pliku = otworz.getSelectedFile().getAbsolutePath();
            //String roz = nazwa_pliku.substring(nazwa_pliku.lastIndexOf('.') + 1);
    
            final BufferedImage obraz = ImageIO.read(otworz.getSelectedFile());
            final JPanel rozklad = new JPanel(new BorderLayout()) {
                @Override
                protected void paintComponent(Graphics g) {
                    Graphics g2 = (Graphics2D)g; //g.create();
                    g2.drawImage(obraz, 0, 0, this);
                    //g2.dispose();
                }
            };
            Dimension size = new Dimension(obraz.getWidth(), obraz.getHeight());
            rozklad.setPreferredSize(size);
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    add(rozklad, BorderLayout.CENTER);
                    revalidate();
                    repaint();
                }
            });
        }
    }
    

    另外,你也可以使用JLabel;这更简单

                   add(new JLabel(new ImageIcon(obraz)), BorderLayout.CENTER);
    

    编辑后

    我试着使用所有的课程。我不得不做一些更正^例如,{}被声明为字段和局部变量,因此其中一个隐藏了另一个。我使用了NetBeans IDE,并给出了一些警告和更正建议

    przegladarka_3

    import javax.swing.JFrame;
    
    public class przegladarka_3 {
    
        public static void main(String[] args) {
            uklad_gl okno_gl = new uklad_gl(true, 800, 600, "Przeglądarka plików graficznych 1.0 alfa");
            okno_gl.setResizable(false);
            okno_gl.setLocationRelativeTo(okno_gl);
            okno_gl.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
    }
    

    uklad_gl

    import java.awt.BorderLayout;
    import java.awt.Graphics;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.image.BufferedImage;
    import java.io.IOException;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.imageio.ImageIO;
    import javax.swing.JFileChooser;
    import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.filechooser.FileNameExtensionFilter;
    
    class uklad_gl extends JFrame {
    
        JPanel rozklad = new JPanel();
        JPanel rozklad2;
        JScrollPane zwijanie; //panel dla suwaków
        JMenuBar pasek_meni;
        JMenuItem wybor;
        JMenu[] pdp; //Plik Dodaj Pomoc
        String[] tab_pasek;
        String[] tab1; //wybory dla Plik
        String[] tab2; //Dodaj
        String[] tab3; //Pomoc
        JFileChooser otworz, zapisz_jako;
        ActionListener wykonaj_plik = new uklad_gl.klasa_zadan();
        ActionListener wykonaj_dzialanie = new uklad_gl.klasa_zadan();
        ActionListener wykonaj_pomoc = new uklad_gl.klasa_zadan();
    
        public uklad_gl(boolean b, int wys, int szer, String tytul) {
            setVisible(b);
            setSize(wys, szer);
            setTitle(tytul);
    
    
            rozklad2 = new JPanel(new BorderLayout());
            add(rozklad, BorderLayout.PAGE_END);
            add(rozklad2, BorderLayout.LINE_END);
    
            zwijanie = new JScrollPane(rozklad);
    
    //        pasek_postepu = new JProgressBar(1, 100);
    //        pasek_postepu.setValue(0);
    //        pasek_postepu.setStringPainted(true);
    //        pasek_postepu.setBounds(600, 200, 110, 500);
    
            stworz_caly_pasek_meni("Plik,Dodaj,Pomoc");
    
        }
    
        public final void stworz_caly_pasek_meni(String lista_pasek) {
    
            tab_pasek = lista_pasek.split(",");
            pasek_meni = new JMenuBar();
            pdp = new JMenu[tab_pasek.length];
            rozklad.add(pasek_meni);
            setJMenuBar(pasek_meni);
    
            for (int i = 0; i < tab_pasek.length; i++) {
    
                pdp[i] = new JMenu(tab_pasek[i]);
                setJMenuBar(pasek_meni);
                pasek_meni.add(pdp[i]);
    
                if (i == 0) {
                    stworz_Plik("Otwórz,Zapisz,Zapisz jako...,Zamknij", wykonaj_plik);
                } else if (i == 1) {
                    stworz_Dzialanie("Odcienie szarości,Sepia,Negatyw,Nasycenie barw", wykonaj_dzialanie);
                } else {
                    stworz_Pomoc("O mnie, O programie, Najczęściej zadawane pytania", wykonaj_pomoc);
                }
    
            }
        }
    
        public void stworz_Plik(String lista_Plik, ActionListener e) {
    
            tab1 = lista_Plik.split(",");
    
            for (int i = 0; i < tab1.length; i++) {
    
                wybor = new JMenuItem(tab1[i]);
                pdp[0].add(wybor);
                wybor.addActionListener(e);
    
            }
        }
    
        public void stworz_Dzialanie(String lista_Dodaj, ActionListener e) {
    
            tab2 = lista_Dodaj.split(",");
    
            for (int i = 0; i < tab2.length; i++) {
    
                wybor = new JMenuItem(tab2[i]);
                pdp[1].add(wybor);
                wybor.addActionListener(e);
    
            }
        }
    
        public void stworz_Pomoc(String lista_Pomoc, ActionListener e) {
    
            tab3 = lista_Pomoc.split(",");
    
            for (int i = 0; i < tab3.length; i++) {
    
                wybor = new JMenuItem(tab3[i]);
                pdp[2].add(wybor);
                wybor.addActionListener(e);
    
            }
        }
    
    //    public class klasa_zadan implements ActionListener, WindowListener, ComponentListener, MouseListener {
        public class klasa_zadan implements ActionListener {
    
            BufferedImage obraz;
    
            public void actionPerformed(ActionEvent e) {
                String polecenie = e.getActionCommand();
    
                if (polecenie.equals("Otwórz")) {
                    try {
                        otworz();
                    } catch (IOException ex) {
                        Logger.getLogger(uklad_gl.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }
    
    
            }
    
            public void otworz() throws IOException {
                otworz = new JFileChooser("C:/");
                FileNameExtensionFilter rastrowa = new FileNameExtensionFilter("Pliki grafiki rastrowej(.jpeg,.png.,gif...)", "jpeg", "jpg", "gif", "png", "bmp");
    
                otworz.setFileFilter(rastrowa);
    
                int a = otworz.showOpenDialog(null);
    
                if (a == JFileChooser.APPROVE_OPTION) {
                    String nazwa_pliku = otworz.getSelectedFile().getAbsolutePath();
                    String roz = nazwa_pliku.substring(nazwa_pliku.lastIndexOf('.') + 1);
    
                    obraz = ImageIO.read(otworz.getSelectedFile());
                    rozklad = new JPanel() {
                        @Override
                        protected void paintComponent(Graphics g) {
                            Graphics g2 = g.create();
                            g2.drawImage(obraz, 0, 0, getWidth(), getHeight(), null);
                            g2.dispose();
                        }
                    };
                    add(rozklad);
                    revalidate();
                    repaint();
                }
            }
        }
    }
    

    klasa_zadan

    import java.awt.BorderLayout;
    import java.awt.Dimension;
    import java.awt.Graphics;
    import java.awt.Graphics2D;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.image.BufferedImage;
    import java.io.File;
    import java.io.IOException;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    import javax.imageio.ImageIO;
    import javax.swing.JFileChooser;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.filechooser.FileNameExtensionFilter;
    
    //public class klasa_zadan extends JFrame implements ActionListener, WindowListener, ComponentListener, MouseListener {
    public class klasa_zadan extends JFrame implements ActionListener {
    
        BufferedImage obraz;
        JFileChooser otworz, zapisz_jako;
    
        public void actionPerformed(ActionEvent e) {
            try {
                String polecenie = e.getActionCommand();
    
                if (polecenie.equals("Otwórz")) {
                    otworz();
                }
    
                if (polecenie.equals("Zapisz jako...")) {
                    zapisz_jako();
                }
    
                if (polecenie.equals("Zamknij")) {
                    zamknij();
                }
            } catch (IOException ex) {
                Logger.getLogger(klasa_zadan.class.getName()).log(Level.SEVERE, null, ex);
            }
        }
    
        public void otworz() throws IOException {
            otworz = new JFileChooser("C://");
    
            FileNameExtensionFilter rastrowa = new FileNameExtensionFilter("Pliki grafiki rastrowej(.jpeg,.png.,gif...)", "jpeg", "jpg", "gif", "png", "bmp");
            otworz.setFileFilter(rastrowa);
            int a = otworz.showOpenDialog(null);
    
            if (a == JFileChooser.APPROVE_OPTION) {
                String nazwa_pliku = otworz.getSelectedFile().getAbsolutePath();
                // String roz=nazwa_pliku.substring(nazwa_pliku.lastIndexOf('.')+1);
    
                /*final BufferedImage*/ obraz = ImageIO.read(otworz.getSelectedFile());
                final JPanel rozklad = new JPanel(new BorderLayout()) {
                    @Override
                    protected void paintComponent(Graphics g) {
                        Graphics g2 = (Graphics2D) g;
                        g2.drawImage(obraz, 0, 0, this);
                        //g2.dispose();             
                    }
                };
                Dimension rozmiar = new Dimension(obraz.getWidth(), obraz.getHeight());
                add(rozklad);
                revalidate();
                repaint();
            }
        }
    
        public void zapisz() throws IOException {
            File plik = zapisz_jako.getSelectedFile();
            String nazwa_pliku = plik.getAbsolutePath();
            String roz = nazwa_pliku.substring(nazwa_pliku.lastIndexOf(".") + 1);
            ImageIO.write(obraz, roz, plik);         //niewiadomo, czy ta metoda działa!!!!                 
        }
    
        public void zapisz_jako() { //zapisanie pliku do innego formatu jest uzależnione od rodzaju pliku graficznego
            zapisz_jako = new JFileChooser("C://");
            zapisz_jako.setSelectedFile(new File("beznazwy.jpg")); //tworzy plik, który będzie zapisany z domyślną nazwą
            zapisz_jako.setFileSelectionMode(JFileChooser.FILES_ONLY);
    
            FileNameExtensionFilter rastrowa = new FileNameExtensionFilter("Pliki grafiki rastrowej(.jpeg,.png.,gif...)", "jpeg", "jpg", "gif", "png", "bmp");
            zapisz_jako.setFileFilter(rastrowa);
    
            int a = zapisz_jako.showSaveDialog(null);
    
            if (a == JFileChooser.APPROVE_OPTION) {
                File plik = zapisz_jako.getSelectedFile();
                String nazwa_pliku = plik.getAbsolutePath();
                String roz;
    
                if (nazwa_pliku.indexOf(".jpg") == -1 && nazwa_pliku.indexOf(".png") == -1 && nazwa_pliku.indexOf(".gif") == -1) {
                    nazwa_pliku += ".jpg"; //zostaw jpg jako domyślny
    //                roz = "jpg";
    //                plik = new File(nazwa_pliku);
                } else {
                    roz = nazwa_pliku.substring(nazwa_pliku.lastIndexOf(".") + 1);
                    try {
                        ImageIO.write(obraz, roz, plik);
                    } catch (IOException ex) {
                        Logger.getLogger(klasa_zadan.class.getName()).log(Level.SEVERE, null, ex);
                    }
                }
            }
        }
    
        public void zamknij() {
            int tn = JOptionPane.showConfirmDialog(null,
                    "Czy na pewno chcesz zakończyć działanie z programem?", "Widaomość",
                    JOptionPane.YES_NO_OPTION, 0, null);
    
            if (tn == 0) {
                System.exit(0);
            }
        }
    }