Avatar billede baitianlong Nybegynder
10. marts 2003 - 16:10 Der er 6 kommentarer og
1 løsning

Placer JFrame på skærmen

Container c = getContentPane();
c.setSize(200, 150);
c.locate(400, 400); //Jeg troede det var den her
c.setLayout(new GridLayout(2, 2));
c.add(cel);
c.add(top);

Hvordan placerer man vinduet på skærmen ??
Avatar billede soreno Praktikant
10. marts 2003 - 16:12 #1
Med setLocation, se f.eks. dette:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;

public class TestKlasseSwing extends JFrame implements ActionListener, WindowListener
{
      private int frameWidth = 640;
      private int frameHeight = 480;
   
      public TestKlasseSwing()
      {
        createFrame();
      }
   
      private void createFrame()
      {
        setTitle("TestKlasseSwing");
        setResizable(false);
        addWindowListener(this);

        //components
        JButton jb = new JButton("Luk");
        jb.addActionListener(this);
        this.getContentPane().add(jb);

        //Center Frame
        java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
        setSize(new java.awt.Dimension(frameWidth, frameHeight));
        setLocation( (screenSize.width-this.getWidth()) / 2, (screenSize.height - this.getHeight()) / 2);
      }

      public void windowOpened(WindowEvent e){}
      public void windowClosing(WindowEvent e){ dispose(); System.exit(0);}
      public void windowClosed(WindowEvent e){}
      public void windowIconified(WindowEvent e){}
      public void windowDeiconified(WindowEvent e){}
      public void windowActivated(WindowEvent e){}
      public void windowDeactivated(WindowEvent e){}
   
      public void actionPerformed(ActionEvent e)
      {
        dispose();
        System.exit(0);
      }
}

class Main
{
      public static void main(String args[])
      {
        new TestKlasseSwing().show();
      }
}
Avatar billede baitianlong Nybegynder
10. marts 2003 - 16:48 #2
Hjælp Soreno (o;

super(vinduesnavn);
       
Container c = getContentPane();
c.setSize(200, 150);

java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
       
c.setLocation((screenSize.width-this.getWidth()) / 2, (screenSize.height - this.getHeight()) / 2);
c.setLayout(new GridLayout(2, 2));
c.add(cel);
c.add(top);
c.add(fah);
c.add(bund);
   
pack();
       
top.addActionListener(new tekstLytter());
bund.addActionListener(new tekstLytter());

Hvad gør jeg forkert ?
Avatar billede baitianlong Nybegynder
10. marts 2003 - 16:58 #3
Hvis jeg bare skriver

c.setLocation(300, 300)

så står den stadig bare oppe i hjørnet ?!
Avatar billede soreno Praktikant
10. marts 2003 - 17:00 #4
Prøv at post noget compilérbar kode som jeg kan teste.
Jeg kan ikke lige gennemskue hvad du bruger "c" (Container) til ??
Avatar billede baitianlong Nybegynder
10. marts 2003 - 17:01 #5
Her er hele møget (o;

package guiJesper;

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

public class Opg14b extends javax.swing.JFrame {

    private JLabel cel = new JLabel("Celcius");
    private JLabel fah = new JLabel("Fahrenheit");
    private JTextField top = new JTextField(10);
    private JTextField bund = new JTextField(10);
   
    private class tekstLytter implements ActionListener {
       
        public void actionPerformed(ActionEvent e){
            if(e.getSource() == top) {
                String t = top.getText();
                double cel = Double.parseDouble(t);
                bund.setText((9/5) * (cel + 32) + "");
            } else if(e.getSource() == bund) {
                String t = bund.getText();
                double fah = Double.parseDouble(t);
                top.setText((5/9) * (fah - 32) + "");
            }
        }
       
    }
   
    public Opg14b(String vinduesnavn) {
       
        super(vinduesnavn);
       
        Container c = getContentPane();
        c.setSize(200, 150);
       
        c.setLocation(300, 300);
          c.setLayout(new GridLayout(2, 2));
        c.add(cel);
        c.add(top);
        c.add(fah);
        c.add(bund);
       
        pack();
       
        top.addActionListener(new tekstLytter());
        bund.addActionListener(new tekstLytter());
       
    }
   
    public static void main(String[] args) {
       
        Opg14b test = new Opg14b("Opgave 14 b");
        test.show();       
    }
}
Avatar billede soreno Praktikant
10. marts 2003 - 17:11 #6
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Opg14b extends javax.swing.JFrame {

    private JLabel cel = new JLabel("Celcius");
    private JLabel fah = new JLabel("Fahrenheit");
    private JTextField top = new JTextField(10);
    private JTextField bund = new JTextField(10);
 
    private class tekstLytter implements ActionListener {
     
        public void actionPerformed(ActionEvent e){
            if(e.getSource() == top) {
                String t = top.getText();
                double cel = Double.parseDouble(t);
                bund.setText((9/5) * (cel + 32) + "");
            } else if(e.getSource() == bund) {
                String t = bund.getText();
                double fah = Double.parseDouble(t);
                top.setText((5/9) * (fah - 32) + "");
            }
        }
     
    }
 
    public Opg14b(String vinduesnavn) {
     
        super(vinduesnavn);
        setSize(200, 150);
        setLocation(300, 300);
       
        Container c = getContentPane();                   
        c.setLayout(new GridLayout(2, 2));
        c.add(cel);
        c.add(top);
        c.add(fah);
        c.add(bund);
     
        pack();
     
        top.addActionListener(new tekstLytter());
        bund.addActionListener(new tekstLytter());
     
    }
 
    public static void main(String[] args) {
     
        Opg14b test = new Opg14b("Opgave 14 b");
        test.show();     
    }
}

Det er fordi du forsøgte at sætte location på contentPane:
Container c = getContentPane();
c.setLocation(300, 300);

Du skal sætte location på framen, se ovenstående.
Avatar billede baitianlong Nybegynder
10. marts 2003 - 17:17 #7
Selvfølgelig. Tusind tak for hjælpen (o;
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester