Problem z wykryciem klasy w aplikacji okienkowej

0

Witam, od jakiegoś czasu uczę się i utrwalam podstawy Javy, napotkałem na problem z widocznością klasy Zapisz którą stworzyłem na potrzeby zapisu wprowadzonych do pól tekstowych dwóch zmiennych, czy mógłby mi ktoś wytłumaczyć gdzie deklarować tę klasę Zapisz aby była widoczna dla wątku obsługi zdarzeń.Dziękuję z góry i witam wszystkich bardzo serdecznie jako nowy członek Forum

import javax.swing.*; 
import java.awt.*; 
import java.awt.event.*;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.io.File;
import java.util.Scanner;

public class Blaster
{


  public static void main(String args[])
  {
      
    Okno okno=new Okno();
    okno.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); programu
    okno.setVisible(true); 
  }
}  

class Okno extends JFrame 
{
  public Okno() 
  {
    setTitle("CRM"); 
    setSize(160,250); 
    
    
    MojPanel p=new MojPanel(); 
    Container powzaw=getContentPane(); 
    powzaw.add(p); 
  }
}
  
class MojPanel extends JPanel 
{
  
  JTextField a;     
  JTextField b;     
  JTextField wynik; 
  
  
  public MojPanel() 
  {
    setLayout(new FlowLayout(FlowLayout.LEFT));  
                                                
    JLabel lab1=new JLabel("Pierwsze");    
    add(lab1);                             
    
    a=new JTextField("",12);               
    add(a);                                
    
    JLabel lab2=new JLabel("Drugie");    
    add(lab2);                            
    
    b=new JTextField("",12);              
    add(b);                               
        
    
    JButton plus=new JButton("Zapisz");       
    add(plus);                          
    
   
    ActionListener sl1=new Dodaj();       
    plus.addActionListener(sl1);          
    
    
    JLabel lab3=new JLabel("Konsola");   
    add(lab3);                         
    
    wynik=new JTextField("",12);          
    add(wynik);                         
    
    }
  
  class Dodaj implements ActionListener   
  {
    public void actionPerformed(ActionEvent zdarzenie) 
    {
      String pierwsze = (a.getText()); 
      String drugie   = (b.getText()); 
      wynik.setText(""+pierwsze+" "+drugie+" "+"Zapisano do pliku");
      Zapis(pierwsze,drugie);
    }
  }
  public static void Zapis(String x,String y) throws FileNotFoundException {
      File file = new File("atx.txt");
      Scanner in = new Scanner(file);      
      PrintWriter zapis = new PrintWriter("atx.txt");
      zapis.println(x+" "+y+" ");
      zapis.close();
}

}
1

Zapis to nie klasa a funkcja statyczna. Nie ma problemu z jej widocznością, jedynie faktem iż może zwrócić wyjątek. W dodatku żadnych wątków tutaj nie widzę.

0
AreQ212 napisał(a):

Zapis to nie klasa a funkcja statyczna. Nie ma problemu z jej widocznością, jedynie faktem iż może zwrócić wyjątek. W dodatku żadnych wątków tutaj nie widzę.

Dziękuję za wyjaśnienie i zainteresowanie w ramach sprostowania podsyłam zrzut kompiler wywalał następujący komunikat,

screenshot-20171130103718.png

ale dodalem catch FileNotFound.. całość się uruchamia ale nie zapisuje nic do pliku, jest on niewidoczny mimo iż znajduję się w tym samym katalogu co cały projekt

screenshot-20171130105231.png

W związku z tym mam pytanie jak radzić sobie z takimi problemami

1

Po co są wiersze

      File file = new File("atx.txt");
      Scanner in = new Scanner(file);  

Do zapisu są niepotrzebne, a one generują wyjątek bo pliku atx.txt jeszcze nie ma.
//Edit, dokładnie mówiąc, to tylko drugi wiersz jest niepotrzebny.

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