Witam, otóż od paru dni uczę się Javy, przeszedłem już do graficznego aspektu. Mianowicie javax.swing, pisze sobie te programiki w Eclipse, no dobra pisze i pisze i co? I nic. Mam wrażenie że te moje programy da się odpalić tylko w tym nieszczęsnym Eclipsie, w folderze projektu mam jedynie pliki .class i .java no i jakieś tam inne .form i inne, ale żadnego którego mógłby odpalić jakiś zwykły śmiertelnik który nie pisze w Javie. Podsumowując, chciałbym aby moje programiki można było odpalić na każdym kompie. Jak to zrobić?!
Wyeksportuj do Runnable JARa. Dostaniesz wtedy JARa, którego powinno się dać odpalić przez dwuklik, mając oczywiście co najmniej JRE.
Spakować do .jar. Klikasz prawym przyciskiem myszy na projekcie -> Export -> Runnable jar i dalej wg wskazówek kreatora.
Podczas Exportowania mam pewien błąd :
JAR export finished with warnings. See details for additional information.
Exported with compile warnings: Przelicznik/src/Przelicznik.java
Nigdzie mi nie pisze jakie są to warningi, niby program działa ale co mogło pójść nie tak?
Jak to nie jest napisane ? Jest - sa to warningi, ktore CALY CZAS masz w pliku Przelicznik.java.
I wszystko poszlo ok. To jest tylko informacja, ze BYLY JAKIES WARNINGI. Warning to nie blad.
No ok, a to jeszcze napiszę żeby nie zaśmiecać forum. Jak zmienić color tła w programie? .setBackground(Color.BLUE); nie chce mi działać, albo ja go źle używam... Poniżej podaje kod mojego programu, jakby ktoś mógł mi napisać gdzie mam to wklepać to byłbym wdzięczny.
import java.awt.Color;
import java.awt.Font;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
public class Przelicznik extends JFrame
{
private JLabel lMetr, lKilometr;
private JTextField tMetr, tKilometr;
public Przelicznik()
{
setSize(800, 600);
setTitle("Przelicznik");
setLayout(null);
setResizable(false);
/* Labele */
// Metry na sekunde
lMetr = new JLabel("m/s");
lMetr.setBounds(150, 50, 100, 50);
lMetr.setFont(new Font("Times New Roman", Font.BOLD, 30));
lMetr.setForeground(Color.GREEN);
add(lMetr);
// Kilometry na sekunde
lKilometr = new JLabel("km/h");
lKilometr.setBounds(300, 50, 100, 50);
lKilometr.setFont(new Font("Times New Roman", Font.BOLD, 30));
lKilometr.setForeground(Color.GREEN);
add(lKilometr);
/* TextFieldy */
// Metry na sekunde
tMetr = new JTextField("");
tMetr.setBounds(50, 50, 100, 50);
tMetr.setFont(new Font("Arial", Font.PLAIN, 25));
add(tMetr);
// Kilometry na sekunde
tKilometr = new JTextField("");
tKilometr.setBounds(195, 50, 100, 50);
tKilometr.setFont(new Font("Arial", Font.PLAIN, 25));
tKilometr.setBackground(new Color(118, 238, 0));
add(tKilometr);
}
public static void main(String[] args)
{
Przelicznik ramka = new Przelicznik();
ramka.setVisible(true);
ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Nie wiem, poszukaj na necie ;) Skoro setBackground() na frame nie dziala. A przy okazji - poczytajo SwingUtils.invokeLater() bo w ten sposob, jak Ty to robisz, to nie uruchamia sie programow SWINGa.
Co to znaczy "nie uruchamia się"? Próbowałem ten program .jar odpalić na innym kompie i działał.
setBackground() nie działa na JFrame, to normalne. Usuń tą funkcję lub zmodyfikuj program używając JPanel :)