Kyltti, tekstikenttä, painike ja tekstialue
Kuva 1 |
---|
Huomaa, että ohjelmassa ei ole määritelty, miten sen pitäisi reagoida painikkeen klikkaukseen. Tästä syystä ohjelma ei tee mitään.
class Ikkuna{
private JFrame taustaruutu;
private String tekija;
private JLabel kyltti;
private JPanel alaosa, ylaosa;
private JTextArea tekstiruutu;
private JButton painike;
private JTextField tekstikentta;
public Ikkuna(String nimi) {
taustaruutu = new JFrame(); // Luodaan uusi ikkuna.
tekija = nimi; // Otetaan talteen tekijän nimi.
taustaruutu.setPreferredSize(new Dimension(300, 250)); // Kokotoive.
taustaruutu.setVisible(true); // Ikkuna näkyväksi.
taustaruutu.setTitle("Made by "+tekija); // Otsikon asetus.
// Asettelun apurit:
alaosa = new JPanel();
ylaosa = new JPanel();
alaosa.setLayout(new BorderLayout()); // Asettelumalli
ylaosa.setLayout(new BorderLayout()); // Asettelumalli
// Peruskomponentit:
tekstiruutu = new JTextArea("Tänne tulee tekstiä...");
tekstiruutu.setEditable(true); // Ruutuun voi kirjoittaa.
tekstiruutu.setLineWrap(true); // Rivit ei mene sivuista yli.
tekstiruutu.setWrapStyleWord(true); // Rivi katkaistaan sanavälistä.
tekstiruutu.setMargin(new Insets(3, 3, 3, 3));
painike = new JButton("Klikkaa");
tekstikentta = new JTextField(10);
kyltti = new JLabel("Kirjoita tekstikenttään ja klikkaa!");
// Lisätään komponentit
ylaosa.add(kyltti, BorderLayout.NORTH); // Ylös
ylaosa.add(tekstikentta, BorderLayout.WEST); //
ylaosa.add(painike, BorderLayout.CENTER);
ylaosa.setBorder(BorderFactory.createTitledBorder("Yläosa"));
alaosa.add(tekstiruutu);
// Alaosan ympärille otsikollinen raja.
alaosa.setBorder(BorderFactory.createTitledBorder("Alaosa"));
// Lisätään ylaosa ja alaosa taustaruutuun.
taustaruutu.add(ylaosa, BorderLayout.NORTH);
taustaruutu.add(alaosa, BorderLayout.CENTER);
taustaruutu.pack(); // Säätää koon setPreferredSize-komennon mukaan.
// Tässä lisätään ikkunaan kuuntelija, joka sammuttaa ohjelman, jos
// ikkuna suljetaan.
taustaruutu.addWindowListener(
new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
}
// Lisätään metodit, joilla päästään ulkopuolelta käsiksi elementteihin:
public String getTekija() {
return tekija;
}
public void setTekija(String tekija) {
this.tekija = tekija;
}
public JLabel getKyltti() {
return kyltti;
}
public void setKyltti(JLabel kyltti) {
this.kyltti = kyltti;
}
public JTextArea getTekstiruutu() {
return tekstiruutu;
}
public void setTekstiruutu(JTextArea tekstiruutu) {
this.tekstiruutu = tekstiruutu;
}
public JButton getPainike() {
return painike;
}
public void setPainike(JButton painike) {
this.painike = painike;
}
public JTextField getTekstikentta() {
return tekstikentta;
}
public void setTekstikentta(JTextField tekstikentta) {
this.tekstikentta = tekstikentta;
}
}