Arbeiten an einem Nebenprojekt für einen Professor, der einen Zufallszahlengenerator will.Zufallsgenerator Jframe
Das Programm in seinem aktuellen Zustand lässt viel zu wünschen übrig, aber ich denke, dass ich auf dem richtigen Weg bin. Ich stehe jedoch fest, wenn es darum geht, das Textfeld zu verwenden, diese Daten an meine Zufallszahlengleichung zu übergeben und sie anzuzeigen. Grundsätzlich wartet das Programm nicht auf die Benutzereingabe in das Textfeld.
Wir haben es in der Schule nie hinter OOP geschafft, also muss ich die großen Waffen rausholen (Leute).
Hier ist, was ich gerade arbeite. Das letzte Bit am Ende ist der Teil, mit dem ich Probleme habe.
package RandomButton;
import java.awt.BorderLayout;
import java.awt.EventQueue;
import java.util.Random;
import java.util.Scanner;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import javax.swing.JButton;
import java.awt.Font;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
import javax.swing.JLabel;
public class GUI extends JFrame {
private JPanel contentPane;
private JTextField textField;
private JTextField ClassSize;
private JLabel label;
private JTextField textField_1;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
GUI frame = new GUI();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the frame.
*/
public GUI() {
int x;
int max;
String strMax;
String strX;
Scanner kb = new Scanner(System.in);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);
//Text field code
textField = new JTextField();
textField.setText("1");
textField.setHorizontalAlignment(SwingConstants.CENTER);
textField.setBounds(10, 143, 414, 35);
contentPane.add(textField);
textField.setColumns(10);
//Randomize button code
JButton btnNewButton = new JButton("Randomize!");
btnNewButton.setFont(new Font("Tahoma", Font.BOLD, 40));
btnNewButton.setBounds(10, 196, 414, 54);
contentPane.add(btnNewButton);
//Label code
label = new JLabel();
label.setFont(new Font("Tahoma", Font.PLAIN, 70));
label.setHorizontalAlignment(SwingConstants.CENTER);
label.setBounds(10, 11, 414, 103);
contentPane.add(label);
//math code
Random num = new Random();
strMax = textField.getText();
max = Integer.parseInt(strMax);
x = num.nextInt(max) + 1;
strX = String.valueOf(x);
label.setText(strX);
}
}
http://docs.oracle.com/javase/tutorial/uiswing/components/editorpane.html Wahrscheinlich benötigen Sie hier einen Event-Handler. –
JTextField verzögert Ihren Code nicht oder irgendetwas ähnliches, es fügt nur das Feld hinzu. Sie benötigen einen Ereignis-Listener. Sie finden Beispiele in Oracle-Dokumenten –