Witam
Ostatnio zasypuję was pytaniami, ale czym bardziej zagłębiam się w Javę tym mniej rozumiem. Zwłaszcza, gdy dzieje się "magia".
Nie rozumiem jakim cudem. Kiedy stworzyłem sobie okienko, które zawiera jakiś tam tekst i poniżej 3 przyciski. Te 3 przyciski stworzyłem w innej klasie i dodałem je do klasy z okienkiem przywołując jako obiekt. (Zaraz zamieszczę kod.) To te przyciski jednym razem są tam i działają jak należy a innym razem w ogóle ich nie wyświetla. Po exporcie programu do Jar jest identycznie a na innym laptopie to już w ogóle ich nie wyświetla.. Przyciski dodałem do programu w niemal identyczny sposób jak do poprzednika, który działa poprawnie tak na komputerze jak i na laptopie. Kod też wygląda niemal identycznie jak u poprzednika..
package Wydatki;
import javax.swing.JFrame;
import javax.swing.JTextArea;
public class Frame extends JFrame {
public Frame() {
setSize(800, 200);
setResizable(false);
setLocationRelativeTo(null);
setTitle("Wydatki");
setVisible(true);
setLayout(null);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main (String[] args){
Frame frame = new Frame();
JTextArea Opis_funkcji = new JTextArea();
frame.add(Opis_funkcji);
Opis_funkcji.setText("Wciśnij przycisk 'Nowy' aby utworzyć oraz zapisać nowy dokument tekstowy.\n"
+ "Wcisnij przycisk 'Otwórz' aby otworzyć istniejący plik tekstowy.\n"
+ "Wciśnij przycisk 'Dopisz' aby dopisać dane do utworzonego pliku tekstowego.");
Opis_funkcji.setBounds(170, 20, 450, 70);
Opis_funkcji.setEditable(false);
Opis_funkcji.setBackground(null);
Buttons przyciski = new Buttons();
frame.add(przyciski);
przyciski.setBounds(130, 100, 500, 200);
}
}
package Wydatki;
import java.awt.Dimension;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JPanel;
public class Buttons extends JPanel implements ActionListener {
private JButton Nowy;
private JButton Otworz;
private JButton Dopisz;
public Buttons(){
Nowy = new JButton("Nowy");
Otworz = new JButton("Otwórz");
Dopisz = new JButton("Dopisz");
Nowy.addActionListener(this);
Otworz.addActionListener(this);
Dopisz.addActionListener(this);
setVisible(true);
add(Nowy);
add(Otworz);
add(Dopisz);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
Object klik = e.getSource();
if (klik == Nowy)
Zapisz.main(null);
}
}
Proszę o pomoc, bo kompletnie nic z tego nie rozumiem. Co robię źle, jak się zabezpieczyć przed takimi dziwactwami i jak sobie radzić, kiedy problemy pojawiają się "z kosmosu" jak je wyłapywać?
Ten program miał służyć do użytku domowego. Zawiera jeszcze z 5 innych klas, ale one działają w trybie konsolowym i mają, krótko mówiąc tworzyć plik tekstowy i na nim działać. Okienka i przyciski, które zrobiłem teraz nie są w żaden sposób powiązane z tamtymi klasami. Powoli właśnie dążyłem, żeby "ubrać" ten program i jestem na samym początku i już czuję, że nic nie ogarniam.
Tak podsumowując: Kiedy kompiluje program w Eclipse przyciski w okienku "Frame" raz są i je widać a raz ich nie ma w ogóle. Tak samo dzieje się po exporcie do .jar. Kiedy wrzucam plik .jar na inne urządzenie to przycisków w ogóle nie ma.
EDIT: Dodam jeszcze, że java jest aktualna na obu urządzeniach.