Mikä on nyt vikana...

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();
}
}
2214
Äänestä

Muut lukivat myös

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 ---

Äänestä
  • Tuo se olikin :D Kiitoksia :)

    Äänestä

Kommentoi aloitusta


Juracaa kirjoitti:

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();
}
}

Anonyymi
5000

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu