Kezdőoldal » Számítástechnika » Programozás » Mi a hiba ebben a Java kodban?

Mi a hiba ebben a Java kodban?

Figyelt kérdés

Barkobat akarok irni. A gep gondol egy szamra es ki kell talalnom.


Ez az Ablak class:


import java.awt.*;


import javax.swing.*;


//import java.awt.Event;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.util.Random;


public class Ablak extends JFrame {


public static int szam;

public static boolean helyes = false;


// private static final long serialVersionUID = 1L;

public JLabel koszon;

public JLabel kiir = new JLabel("");

JTextArea ta;

int input;


public Ablak() {

super("Barkoba");

setLayout(new FlowLayout());

JLabel koszon = new JLabel(

"Talald ki azt a szamot amire gondoltam 1-tol 10-ig!");

koszon.setToolTipText("Hasznald a jos kepessegeidet!!!");

add(koszon, BorderLayout.WEST);


JButton gomb = new JButton("Send");


ta = new JTextArea(1, 5);


event e = new event();

gomb.addActionListener(e);


add(ta, BorderLayout.WEST);

add(gomb, BorderLayout.WEST);

//


Random rand = new Random();

szam = rand.nextInt(10) + 1;

System.out.println(szam);

}


public class event implements ActionListener {


public void actionPerformed(ActionEvent e) {

// JTextArea ta = new JTextArea(1,5);

String text = ta.getText();

int text2 = Integer.parseInt(text);

input = text2;


if (input == szam) {

JLabel kiir = new JLabel("Jo!");


add(kiir);


} else {


JLabel kiir = new JLabel("Nem jo!");

add(kiir, BorderLayout.WEST);


System.out.println(text);


}


}

}


}


Ez meg az App class amiben a main is van:


import javax.swing.*;

import java.util.*;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;


public class App extends JFrame {


public static void main(String[] args) {


Ablak window = new Ablak();

window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

window.setSize(600, 450);

window.setVisible(true);

window.setResizable(false);

//


}

}


A gondom az, hogy ha beirok egy szamot es rakattintok a gombra, csak akkor irja ki az uzeetet(helyes vagy nem), ha a szovegmezobe modositok, irok meg valamit vagy kitorlom a szamot.

Miert van ez? Ugyanez tortenik akkor is ha ott nem JLabelt hasznalok, hanem kiir.setText("Jo");-t peldaul.


Elore is koszi!


2014. ápr. 25. 00:12
 1/2 Tengor ***** válasza:

Ezt a kérdést tedd fel megint, mert vagy én vagyok fáradt, vagy a mondat második felének, ahol a problémádról írsz, semmi értelme.

Megjegyzés: az osztályokat nagy kezdőbetűvel írjuk (event).

2014. ápr. 25. 00:41
Hasznos számodra ez a válasz?
 2/2 anonim ***** válasza:

1. kérdésem: Az App osztályod miért JFrame leszármazott?


2. kérdésem: Körülbelül ugyan az mint az előző válaszolónak.


3. Itt egy működő, természetesen ez csak egy alap a folytatáshoz:


App.java:


package barkoba;


import javax.swing.JFrame;


public class App{


public static void main(String[] args) {

JFrame game = new Ablak();

game.setVisible(true);

}

}


Ablak.java:


package barkoba;


import com.sun.jmx.snmp.BerDecoder;

import java.awt.BorderLayout;

import java.awt.event.ActionEvent;

import java.util.Random;

import javax.swing.AbstractAction;

import javax.swing.Action;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JLabel;

import javax.swing.JOptionPane;

import javax.swing.JTextArea;


public class Ablak extends JFrame {


private final JLabel infoTask;

private final JTextArea input;

private final JButton submit;


private final Random rnd = new Random();


private final int myNum;


private final Action submited = new AbstractAction("Send") {

@Override

public void actionPerformed(ActionEvent e) {

int num = Integer.parseInt(input.getText());


if (testForWin(num)) {

JOptionPane.showMessageDialog(null, "Eltaláltad a számot", "Nyertél", JOptionPane.INFORMATION_MESSAGE);

} else {

System.out.println("Sajnos nem találtad el a számot!");

}

}

};


public Ablak() {


super("Barkoba");


myNum = getRnd(1, 10);

System.out.println(myNum);


infoTask = new JLabel("Találd ki azt a számot amire gondoltam 1-től 10-ig!");

input = new JTextArea();

submit = new JButton(submited);


setDefaultCloseOperation(EXIT_ON_CLOSE);

setLayout(new BorderLayout());


add(infoTask, BorderLayout.NORTH);

add(input, BorderLayout.CENTER);

add(submit, BorderLayout.SOUTH);

pack();


}


private boolean testForWin(int n) {

return myNum == n;

}


private int getRnd(int min, int max) {

return rnd.nextInt((max - min) + 1) + min;

}

}

2014. ápr. 25. 02:29
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!