Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Tyhjä ikkuna Javalla

Ville [01.12.2004 21:24:52]

#

Olen tässä koettanut luoda pelkkää paljasta framea ja muuten se alkaakin olla jo ok, mutta haluaisin vielä tietää miten saadaan pois ikkunasta pienennys nappula?

Mitä järkeä tyhjää ikkunaa tehdä, joku nyt kysyy.
No ei varmaan paljookaan, mutta aloittalijalle ihan tarpeeksi haastetta =)

Ville

maka78 [02.12.2004 12:39:59]

#

No kun pistät this.setUndecorated(true); niin häviää kaikki nappulat. ;)

Ville [04.12.2004 12:55:09]

#

Mutta jos olisin halunnut säilyttää sulkemisvaihtoehdon (eli sen ruksin) ja saada muut pois.
frame.setResizable(false) on jo siis hallussa.
Mutta miten pienennys saadaan vielä pois?

FooBat [04.12.2004 15:02:41]

#

Java käyttää käyttöjärjestelmän tarjoamaa perusikkunaa siellä pohjalla, joten et saa yksittäisiä nappuloita pois. Ainoa vaihtoehto taitaa olla setUndecorated(true) ja sitten itse koodata yläpalkki ja sulkemisnappula. Ei mikään mahdoton tehtävä, mutta onhan siinä vähän ylimääräistä tehtävää vain muutaman nappulan takia.

Ville [05.12.2004 12:42:15]

#

Ok =)
Vielä olisin sitten udellut että mistäköhän pitäisi lähteä liikkeelle noissa nappuloiden koodauksessa??
Kun tuntuu tuo lähestyminen javaan olevan hiukan vaikea.
(Vb:ssä kun nuo jutut hoituu aika paljkon selkeämmin =) ).

Ja totta puhut, ylimääräistä puuhaa tuo totisesti on, mutta näin alkutaipaleella kaikki kiinnostaa ja eihän sitä tiedä vaikka joskus oikeasti tarvitsis.

FooBat [05.12.2004 15:18:05]

#

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class NappiOhje extends JFrame implements ActionListener {

  private JButton jbLopeta;

  public NappiOhje( String sNimi ) {
    super(sNimi);
    setSize(600,480);

    jbLopeta = new JButton("X");
    jbLopeta.setActionCommand("Lopeta");
    jbLopeta.addActionListener( this );
    JPanel jpSisusta = new JPanel();
    jpSisusta.add(jbLopeta);
    //nappien parempaa asettelua varten kannattaa tutkia
    //GridBagLayout ja GridBagConstraints luokkia

    //JFramen sisältöolio
    getContentPane().add(jpSisusta);
  }

  /**
   * ActionListenerin vaatima metodi, jota kutsutaan, kun
   * nappia painetaan.
   */
  public void actionPerformed( ActionEvent e ) {
    String sCmd = e.getActionCommand();
    if ( "Lopeta".equals( sCmd ) ) {
      dispose(); // tuhotaan frame
    }
  }

  public static void main(String [] args) {
    JFrame f = new NappiOhje("Nappiohje");
    f.setUndecorated(true);
    f.show();
  }
}

Nappuloiden koodauksessa kannattaa lähtetä liikkeelle tutkimalla JButton luokan javadoc dokumentaatiota.

Ville [06.12.2004 14:02:00]

#

Uh........
Mut, jumaleisson nythän mä hokaan =)
Paljosti kiitoksia.

Itse asiassa nappuloiden koodauksesta oli jo harmaa aavistus.
Mut en tajunnu että asiaa voi lähestyä tältä kantilta.
Johtuen varmaan kun en tuota "f.setUndecorated" juttua tiennyt.

Ei muuta kun kokeilemaan =)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta