Tein ohjelman, joka vastaa muutamaan kysymykseen, mitä käyttäjä kysyy. Ainoa ongelma on, että en saa vastauksia allekkain, vaan
ne tulevat joko peräkkäin tai ne pitää laittaa erikseen borderLayout:in avulla, niinku koodissa tein. Tuossa on vaan se ikävä puoli, että niissä on aika pitkät välimatkat... :/
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Ikkuna extends JFrame {
public Ikkuna() {
//Ikkunan asetuksia
super("Ikkuna");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(600, 600);
//Komponentit
JPanel paneli = new JPanel();
paneli.setLayout(new BorderLayout());
JMenuBar bar = new JMenuBar();
final JLabel salasanani = new JLabel();
final JLabel jotain = new JLabel();
final JLabel syntymäaika = new JLabel();
JButton tekstinlisääjänappi = new JButton("Paina tästä");
final JLabel nimeni = new JLabel();
JMenu Ohjelma = new JMenu("Ohjelma");
JMenuItem tekstiOhjelmaAvaaja = new JMenuItem("Avaa Teksti Ohjelma");
JMenuItem SuljeOhjelma = new JMenuItem("Sulje");
// Komponenttien lisäys
paneli.add((jotain));
paneli.add((nimeni), BorderLayout.SOUTH);
paneli.add(salasanani);
paneli.add((syntymäaika), BorderLayout.NORTH);
bar.add(Ohjelma);
bar.add(tekstinlisääjänappi);
Ohjelma.add(tekstiOhjelmaAvaaja);
Ohjelma.add(SuljeOhjelma);
this.setJMenuBar(bar);
this.add(paneli);
//Kuuntelijat ja muut "härpäkkeet"
tekstinlisääjänappi.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String teksti;
teksti = JOptionPane.showInputDialog(null, "päätit sitten painaa NAPPIA. Kirjota sitten jotain tohon tekstikenttään :)"); {
if (teksti.startsWith("kerro salasanasi")) {
salasanani.setText("Salasanani on: *********");
}
if (teksti.startsWith("kerro nimesi")) {
nimeni.setText("Nimeni on Juho");
}
if (teksti.startsWith("kerro milloin synnyit")) {
syntymäaika.setText("Synnyin 10.2.1993");
}
}
}
});
SuljeOhjelma.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "Ihan ku sul ois jotain parempaakin tekemistä... "); {
System.exit(0);
}
}
});
setVisible(true);
}
public static void main(String[] args ) {
new Ikkuna();
}
}
ne tulevat joko peräkkäin tai ne pitää laittaa erikseen borderLayout:in avulla, niinku koodissa tein. Tuossa on vaan se ikävä puoli, että niissä on aika pitkät välimatkat... :/
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Ikkuna extends JFrame {
public Ikkuna() {
//Ikkunan asetuksia
super("Ikkuna");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(600, 600);
//Komponentit
JPanel paneli = new JPanel();
paneli.setLayout(new BorderLayout());
JMenuBar bar = new JMenuBar();
final JLabel salasanani = new JLabel();
final JLabel jotain = new JLabel();
final JLabel syntymäaika = new JLabel();
JButton tekstinlisääjänappi = new JButton("Paina tästä");
final JLabel nimeni = new JLabel();
JMenu Ohjelma = new JMenu("Ohjelma");
JMenuItem tekstiOhjelmaAvaaja = new JMenuItem("Avaa Teksti Ohjelma");
JMenuItem SuljeOhjelma = new JMenuItem("Sulje");
// Komponenttien lisäys
paneli.add((jotain));
paneli.add((nimeni), BorderLayout.SOUTH);
paneli.add(salasanani);
paneli.add((syntymäaika), BorderLayout.NORTH);
bar.add(Ohjelma);
bar.add(tekstinlisääjänappi);
Ohjelma.add(tekstiOhjelmaAvaaja);
Ohjelma.add(SuljeOhjelma);
this.setJMenuBar(bar);
this.add(paneli);
//Kuuntelijat ja muut "härpäkkeet"
tekstinlisääjänappi.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
String teksti;
teksti = JOptionPane.showInputDialog(null, "päätit sitten painaa NAPPIA. Kirjota sitten jotain tohon tekstikenttään :)"); {
if (teksti.startsWith("kerro salasanasi")) {
salasanani.setText("Salasanani on: *********");
}
if (teksti.startsWith("kerro nimesi")) {
nimeni.setText("Nimeni on Juho");
}
if (teksti.startsWith("kerro milloin synnyit")) {
syntymäaika.setText("Synnyin 10.2.1993");
}
}
}
});
SuljeOhjelma.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "Ihan ku sul ois jotain parempaakin tekemistä... "); {
System.exit(0);
}
}
});
setVisible(true);
}
public static void main(String[] args ) {
new Ikkuna();
}
}
Vastaukset 2
Vanhimmat
--- KOODI ALKAA ---
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class Ikkuna extends JFrame implements ActionListener {
final JLabel salasanani;
final JLabel jotain;
final JLabel syntymäaika;
final JLabel nimeni;
public Ikkuna() {
super("Ikkuna");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(600, 600);
//
// Ikkunan työkalu rivi
//
JMenuBar menubar = new JMenuBar();
JMenu menuOhjelma = new JMenu("Ohjelma");
JMenuItem menuitem = new JMenuItem("Avaa Teksti Ohjelma");
menuOhjelma.add(menuitem);
menuitem = new JMenuItem("Sulje");
menuOhjelma.add(menuitem);
menuitem.setActionCommand("SULJE");
menuitem.addActionListener(this);
menubar.add(menuOhjelma);
JButton tekstinlisääjänappi = new JButton("Paina tästä");
tekstinlisääjänappi.setActionCommand("KYSY");
tekstinlisääjänappi.addActionListener(this);
menubar.add(tekstinlisääjänappi);
setJMenuBar(menubar);
//
// Ikkunan sisältö alue
//
getContentPane().setLayout(new GridBagLayout());
GridBagConstraints gbc = new GridBagConstraints();
gbc.anchor = GridBagConstraints.LINE_START;
gbc.weightx = 1.0;
gbc.gridx = 0;
getContentPane().add(jotain = new JLabel(" "), gbc);
getContentPane().add(nimeni = new JLabel(" "), gbc);
getContentPane().add(salasanani = new JLabel(" "), gbc);
getContentPane().add(syntymäaika = new JLabel(" "), gbc);
gbc.weighty = 1.0;
getContentPane().add(new JPanel(), gbc);
//
// Ikkuna näkyviin
//
setVisible(true);
}
//
// Toiminnot
//
public void actionPerformed(ActionEvent e) {
if ("SULJE".equals(e.getActionCommand())) {
JOptionPane.showMessageDialog(null,
"Ihan ku sul ois jotain parempaakin tekemistä... ");
System.exit(0);
}
if ("KYSY".equals(e.getActionCommand())) {
String teksti = JOptionPane.showInputDialog(null,
"päätit sitten painaa NAPPIA. "
"Kirjota sitten jotain tohon tekstikenttään :)");
if (teksti.startsWith("kerro salasanasi")) {
salasanani.setText("Salasanani on: *********");
} else if (teksti.startsWith("kerro nimesi")) {
nimeni.setText("Nimeni on Juho");
} else if (teksti.startsWith("kerro milloin synnyit")) {
syntymäaika.setText("Synnyin 10.2.1993");
}
}
}
//
// Pääohjelma
//
public static void main(String[] args ) {
new Ikkuna();
}
}
--- KOODI LOPPUU ---
Tuo se olikin :D Kiitoksia :)