Avatar billede mikmakmuk Nybegynder
23. marts 2004 - 07:56 Der er 22 kommentarer og
1 løsning

Swing (simple regnemaskine)

Hej Eksperter,

Jeg sidder og arbejder lidt med Swing. Jeg har sådan set 2 spørgsmål.

1. Hvorfor ligger den ikke de to tal samme 1+1 = 2
2. Hvordan for jeg den til at vise resultatet i r1 TextFieldet når jeg trykker på Udregn?

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


public class Udregn extends JDialog implements ActionListener
{
    JButton b1         = new JButton("Udregn");
    JTextField  t1     = new JTextField(5);
    JTextField  t2     = new JTextField(5);
    JTextField  r1     = new JTextField(20);
   
    JPanel pa;
   
    public Udregn(Frame owner, String s, boolean modal)
    {
        super (owner, s, modal);
        setSize(300,100);
        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        setLocation(420,320);
        setResizable(false);
       
        b1.addActionListener(this);
       
        pa = new JPanel();
        pa.add(t1);
        pa.add(t2);
        pa.add(b1);
        pa.add(r1);
        pa.setBackground(Color.yellow);
        setContentPane(pa);
       
    }
   
        public void actionPerformed(ActionEvent evt)
        {
        Object scr = evt.getSource();
    /*   
        if (scr==b1)
        {
            JDialog fr = new Kunder(this, "Kunder",true);
            fr.setVisible(true);
           
        }
       
    */   
        if (scr==b1)
        {
        int tal1 = Integer.parseInt(t1.getText());
        int tal2 = Integer.parseInt(t2.getText());
        System.out.println(tal1+ " + " +tal2+ " = "+ tal1+tal2);   
        }
       
    }
}
Avatar billede _carsten Nybegynder
23. marts 2004 - 08:00 #1
Sådan burde være løsningen
System.out.println(tal1+ " + " +tal2+ " = "+ (tal1+tal2));
Avatar billede _carsten Nybegynder
23. marts 2004 - 08:01 #2
Glemte lige Textfelt

        if (scr==b1)
        {
        int tal1 = Integer.parseInt(t1.getText());
        int tal2 = Integer.parseInt(t2.getText());
        r1.setText((tal1+tal2));
        System.out.println(tal1+ " + " +tal2+ " = "+ (tal1+tal2)); 
        }
Avatar billede mikmakmuk Nybegynder
23. marts 2004 - 08:25 #3
r1.setText((tal1+tal2)); slipper jeg ikke afsted med. Jeg skal have have int om til en String
Avatar billede _carsten Nybegynder
23. marts 2004 - 08:27 #4
Dette er den nemme

r1.setText("" + (tal1+tal2));
Avatar billede mikmakmuk Nybegynder
23. marts 2004 - 08:29 #5
Skal jeg ikke typecaste det hvis det skal være rigtigt
Avatar billede _carsten Nybegynder
23. marts 2004 - 08:34 #6
Det er sådan set valgfrit hvordan du vil gøre det

Den korte måde
r1.setText("" + (tal1+tal2));

Den lange
r1.setText( Integer.toString((tal1+tal2)));
Avatar billede mikmakmuk Nybegynder
23. marts 2004 - 08:44 #7
tak for hjælpen :-)
Avatar billede arne_v Ekspert
23. marts 2004 - 09:07 #8
De korte måde er glimrende til noget GUI.

Hvis der skal konverteres fra int til String en milliard gange, så kan
den lange måde anbefales.
Avatar billede mikmakmuk Nybegynder
23. marts 2004 - 09:09 #9
måske ikke lige en milliard :-)
Avatar billede mikmakmuk Nybegynder
23. marts 2004 - 09:47 #10
Jeg kunne også godt tænke mig at lave en JList. Den skal bare bestå af tallene 0-10, men den skal først laves når jeg trykker på knappen

Jeg har oprettet den: JList li1    = new JList();

added den: pa.add(li1);

Når jeg trykker på knappen:
for (int i=0;i<=10;i++){
int [] data;
data[i] = i;
}
Avatar billede mikmakmuk Nybegynder
23. marts 2004 - 09:51 #11
Hvad er der galt med int[] data;  ???????
Avatar billede _carsten Nybegynder
23. marts 2004 - 09:53 #12
Du har int [] data; indenfor din løkke,, den skal være udenfor
Avatar billede _carsten Nybegynder
23. marts 2004 - 09:54 #13
Du definerer en ny data i hvert loop løkken kører

Sådan
int [] data;

for (int i=0;i<=10;i++){
  data[i] = i;
}
Avatar billede mikmakmuk Nybegynder
23. marts 2004 - 09:56 #14
Jeg er da også nød til at sige hvor lagt arrayet er ikke :-)

int j = 10;
int[] data = new int[j];
Avatar billede _carsten Nybegynder
23. marts 2004 - 09:59 #15
Jo - selvfølgelig, har gang i lille spændende project pt. så jeg er nok lidt for hurtig til at skyde kommentarer afsted i dag :-)
Avatar billede mikmakmuk Nybegynder
23. marts 2004 - 10:02 #16
Jeg syntes bare det er fedt at du gider hjælpe :-) Jeg har jo også ret til at tænke selv *lol*
Avatar billede mikmakmuk Nybegynder
23. marts 2004 - 10:06 #17
Det endte med at se således ud

int j = 10;
String[] data = new String[j];
           
for (int i=0;i<=j-1;i++){
data[i] = "i";
System.out.println(i);
}

Nu er mit problem så bare hvordan jeg får værdierne vist i min JList
Avatar billede _carsten Nybegynder
23. marts 2004 - 10:07 #18
minJList.setListData(data);
Avatar billede mikmakmuk Nybegynder
23. marts 2004 - 10:08 #19
Måden at gøre det på er principielt

String[] data    = {"Item1"};
JList li1    = new JList(data);
Avatar billede _carsten Nybegynder
23. marts 2004 - 10:10 #20
Ja - sådan kan du også det, der er mange måder at lave lagkage
Avatar billede mikmakmuk Nybegynder
23. marts 2004 - 10:10 #21
Tak det spiller bare :-))))
Avatar billede _carsten Nybegynder
23. marts 2004 - 10:12 #22
Hvis du har din 'data' klar før din JList initieres, er det selvfølgelig at foretrække
Avatar billede mikmakmuk Nybegynder
23. marts 2004 - 10:16 #23
Okay :-))
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