Hallo Leute,
ich möchte einen String auf einem Label, nachdem klicken auf einen Button ausgeben.
Der String wird durch eine Methode erzeugt. Wenn man das ganze in der Konsolel vorher testet,
klappt das alles perfekt, sobald man aber es mit dem Button versucht, hauts ne Fehlermeldung.
Hier erst mal der Code.
Das ganze läuft so ab, dass ich mit einem Buffered Reader mir zeilenweise die Daten hohle und dann in einer ArrayList abspeichere.
Hier mal die GUI.
Und jetzt der Fehlertext.
Er scheint meine Funktion nicht zu mögen, diese klappt jedoch auf der Konsole auch ??
Hab schon rumgespielt mit dem Code also nicht durch die sinnlosen Variablen in der Funktion irritieren lassen.
Wäre klasse wenn ihr mir helfen könntet.
VG
Marvin
ich möchte einen String auf einem Label, nachdem klicken auf einen Button ausgeben.
Der String wird durch eine Methode erzeugt. Wenn man das ganze in der Konsolel vorher testet,
klappt das alles perfekt, sobald man aber es mit dem Button versucht, hauts ne Fehlermeldung.
Hier erst mal der Code.
Java:
package phrase;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
public class start {
static ArrayList<String> nomenList = new ArrayList<String>();
static ArrayList<String> adjektiveList = new ArrayList<String>();
static ArrayList<String> verbenList = new ArrayList<String>();
static ArrayList<String> objekteList = new ArrayList<String>();
public static void main(String[] args) {
// TODO Auto-generated method stub
try {
BufferedReader inNomen = new BufferedReader(new FileReader(
"Nomen.txt"));
String zeileNomen = null;
BufferedReader inVerben = new BufferedReader(new FileReader(
"Verben.txt"));
String zeileVerben = null;
BufferedReader inAdjektive = new BufferedReader(new FileReader(
"Adjektive.txt"));
String zeileAdjektive = null;
BufferedReader inObjekte = new BufferedReader(new FileReader(
"Objekte.txt"));
String zeileObjekte = null;
while ((zeileNomen = inNomen.readLine()) != null
&& (zeileVerben = inVerben.readLine()) != null
&& (zeileAdjektive = inAdjektive.readLine())!= null
&& (zeileObjekte = inObjekte.readLine()) != null){
nomenList.add(zeileNomen);
adjektiveList.add(zeileAdjektive);
objekteList.add(zeileObjekte);
verbenList.add(zeileVerben);
}
} catch (IOException e) {
e.printStackTrace();
}System.out.println(getSent());
}// main
public static String getSent() {
String s = "";
String n = "";
String v = "";
String a = "";
String o = "";
double mathVerben = Math.random() * verbenList.size();
double mathAdjektive = Math.random() * adjektiveList.size();
double mathObjekte = Math.random() * objekteList.size();
n = nomenList.get((int)mathVerben);
// .get((int)mathVerben);
// v = verbenList.get((int)mathVerben)); + " "
// + adjektiveList.get((int) mathAdjektive) + " "
// + objekteList.get((int) mathObjekte) + "\n");
return n;
}// getSent
}
Das ganze läuft so ab, dass ich mit einem Buffered Reader mir zeilenweise die Daten hohle und dann in einer ArrayList abspeichere.
Hier mal die GUI.
Java:
package phrase;
import java.awt.EventQueue;
public class monitor {
private JFrame frame;
/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
monitor window = new monitor();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
/**
* Create the application.
*/
public monitor() {
initialize();
}
/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);
final JLabel lblNewLabel = new JLabel("New label");
lblNewLabel.setBounds(114, 51, 176, 40);
frame.getContentPane().add(lblNewLabel);
JButton btnClick = new JButton("click");
btnClick.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
lblNewLabel.setText(start.getSent());
}
});
btnClick.setBounds(170, 228, 89, 23);
frame.getContentPane().add(btnClick);
}
}
Und jetzt der Fehlertext.
Code:
Exception in thread "AWT-EventQueue-0" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
at java.util.ArrayList.RangeCheck(Unknown Source)
at java.util.ArrayList.get(Unknown Source)
at phrase.start.getSent(start.java:65)
at phrase.monitor$2.actionPerformed(monitor.java:57)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Er scheint meine Funktion nicht zu mögen, diese klappt jedoch auf der Konsole auch ??
Hab schon rumgespielt mit dem Code also nicht durch die sinnlosen Variablen in der Funktion irritieren lassen.
Wäre klasse wenn ihr mir helfen könntet.
VG
Marvin