Mi a hiba ebben a Java kodban?
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!
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).
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;
}
}
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!