• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Problem bei Java

Giskanne

Jonagold
Registriert
22.06.09
Beiträge
22
Hey,
Könnt ihr mir helfen dieses Programm zum laufen zu bringen??? Ich möchte eigentlich nur, dass man etwas eingeben kann während das Programm läuft. Ich dachte mir, dass es vllt. so wie unten funktionieren könnte, aber Eclipse gibt mir nur unverständliche Fehlermeldungen.


Programm:

import java.io.IOException;
import java.applet.*;
import java.awt.*;
import java.awt.event.*;


public class Eingabe extends Applet{
byte [] b = new byte[100];


try
{

System.in.read(b);
}

catch(IOException e)

{
System.out.println("Es ist ein Fehler:" + e);
}

finally{
System.out.println(b);
}

}


Fehlermeldungen:

java.lang.Error: Unresolved compilation problems:
Syntax error on token ";", { expected after this token
Syntax error, insert "}" to complete ClassBody

at Eingabe.<init>(Eingabe.java:8)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:494)
at java.lang.Class.newInstance0(Class.java:350)
at java.lang.Class.newInstance(Class.java:303)
at sun.applet.AppletPanel.createApplet(AppletPanel.java:723)
at sun.applet.AppletPanel.runLoader(AppletPanel.java:652)
at sun.applet.AppletPanel.run(AppletPanel.java:326)
at java.lang.Thread.run(Thread.java:613)
 

dubb3000

Braeburn
Registriert
09.01.06
Beiträge
47
Das Problem ist dass du das Exception handling im Klassenkörper geschrieben hast. Du musst eine Methode schreiben und da erst das Einlesen machen.
Applet ist denk ich auch nicht die super Lösung da man ja für System.in.read eine Konsole zum eintippen braucht.

Code:
import java.io.IOException;

public class Eingabe {

	byte[] b = new byte[100];
	
	public void eingabe() {
		try
		{
			
			System.in.read(b);
		}
		
		catch(IOException e)
		
		{	
			System.out.println("Es ist ein Fehler:" + e);
		}
		
		finally{
			System.out.println(b);
		}
	}
	
	public static void main(String[] args) {
		new Eingabe().eingabe();
	}

}
 

naich

Pomme d'or
Registriert
22.11.08
Beiträge
3.082
Also ich nehme mal an, dass das ein einfaches Konsolen-Programm sein soll?!
Bei uns an der Uni wurde uns eine Klasse für die Eingaben bereitgestellt, welche die Sachen bequem direkt in int, String oder was es auch sein soll umwandelt und zurückgibt. Die ist viell. die einfachste Methode: KLICK
 

Giskanne

Jonagold
Registriert
22.06.09
Beiträge
22
Vielen Dank euch beiden für die Antworten, werde das demnächst mal ausprobieren ;).
 

Giskanne

Jonagold
Registriert
22.06.09
Beiträge
22
Nun gut, jetzt weiß ich wie man ohne Applet eine Eingabe macht.


1) Wie kann man den nun in einem Applet eine Eingabe machen?
2) Und wie kann man einem Button in einem Applet-Fenster einen festen Platz zuweisen, sodass der/die Button/s beim groß- und kleinziehen des Fensters sich nicht verschiebt?
 

bezierkurve

Halberstädter Jungfernapfel
Registriert
12.06.05
Beiträge
3.860
Schau dir mal die Dokumentation für AWT an. Für Eingabefelder, Buttons etc. gibts fertige Klassen.

Für die Platzierung von Elementen musst du einen Layout-Manager (sinngemäß, evtl. heißt es bei AWT anders) nutzen.
 

Giskanne

Jonagold
Registriert
22.06.09
Beiträge
22
Neues Problem ;)

Erstmal der Quelltext
Erste Class:
import javax.swing.*;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.applet.*;
import java.text.DecimalFormat;
import java.awt.*;
import java.applet.Applet;
import java.awt.event.*; // für event handling
import java.util.*;
import java.awt.List;


public class Erstens extends Applet implements ActionListener
{

private Button NewFigure;
private Zweitens NewHelp;
public java.awt.List multiL;
String Steps,wich;
public int jumpnumber;
private Panel centerPanel,southPanel,northPanel ;
private Label titleLabel;
public String DrehungA [][] = new String [3][4];public String ArtA [][][] = new String [3][2][4];
public int c,a,x,y;


public void init()
{
setLayout (new BorderLayout() );





NewHelp = new Zweitens();
NewFigure = new Button("New Figure");
NewFigure.addActionListener (this);
NewFigure.setActionCommand ("BAAM");
this.add(NewFigure);

centerPanel = new Panel();
centerPanel.setLayout (new FlowLayout() );
multiL=(java.awt.List)NewHelp.getPoing();
centerPanel.add(NewHelp);

add (centerPanel, "Center");

northPanel = new Panel();
northPanel.setLayout (new FlowLayout() );
titleLabel = new Label ("Jumpstyle Creator ");
northPanel.add(titleLabel);
add (northPanel, "North");


southPanel = new Panel();
southPanel.setLayout (new FlowLayout() );
southPanel.add(NewFigure);
add (southPanel, "South");


}

public void actionPerformed (ActionEvent e)
{
NewHelp = new Zweitens();


String which = (String) e.getActionCommand();
if ( which.equals("BAAM") )
{
jumpnumber = 0;
NewHelp.init();
jumpnumber=(int)NewHelp.getState();
Graphics g = getGraphics();
NewHelp.paint(g);
centerPanel.add(NewHelp);

}







}




}


Zweite Class:
import javax.swing.*;
import java.awt.*;
import java.applet.*;
import java.util.Random;
// für event handling
import java.util.*;
import java.awt.List;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

public class Zweitens extends Canvas{

public int jumpnumber;
public String Steps;
public byte a,x,y;
public int b,c,d,e,f;
public java.awt.List multiL;
public Panel centerPanel;
public Erstens Springer;

public String DrehungA [][] = new String [3][4];

public String ArtA [][][] = new String [3][2][4];
public String BeschaffenheitA [][] = new String [2][4];


public void init() {

Springer = new Erstens();
Steps = JOptionPane.showInputDialog("Enter number of jumps for next figure.");
this.jumpnumber = Integer.parseInt(Steps);

DrehungA[0][0]="Rechts Drehung 90° ";
DrehungA[0][1]="Rechts Drehung 180° ";
DrehungA[0][2]="Rechts Drehung 270° ";
DrehungA[0][3]="Rechts Drehung 360° ";
DrehungA[1][0]="Links Drehung 90° ";
DrehungA[1][1]="Links Drehung 180° ";
DrehungA[1][2]="Links Drehung 270° ";
DrehungA[1][3]="Links Drehung 360° ";
ArtA [0][0][0]="Kick Rechter Fuß Front";
ArtA [0][0][1]="Kick Rechter Fuß Tief Side";
ArtA [0][0][2]="Kick Rechter Fuß High Side";
ArtA [0][0][3]="Kick Rechter Fuß Back";
ArtA [0][1][0]= "Kick Linker Fuß Front";
ArtA [0][1][1]= "Kick Linker Fuß Tief Side";
ArtA [0][1][2]= "Kick Linker Fuß High Side";
ArtA [0][1][3]="Kick Linker Fuß Back";
ArtA [1][0][0]= "Boden Rechter Fuß Nord-West";
ArtA [1][0][1]="Boden Rechter Fuß Nord";
ArtA [1][0][2]="Boden Rechter Fuß Nord-Ost";
ArtA [1][0][3]="Boden Rechter Fuß Süd";
ArtA [1][1][0]="Boden Linker Fuß Nord-West";
ArtA [1][1][1]= "Boden Linker Fuß Nord";
ArtA [1][1][2]= "Boden Linker Fuß Nord-Ost";
ArtA [1][1][3]= "Boden Linker Fuß Süd";
ArtA [2][0][0]="Am Bein Rechter Fuß Front";
ArtA [2][0][1]="Am Bein Rechter Fuß Back";
ArtA [2][0][2]="Am Bein Rechter Fuß Hand";
ArtA [2][0][3]="Am Bein Rechter Fuß Back";
ArtA [2][1][0]="Am Bein Linker Fuß Front";
ArtA [2][1][1]="Boden Stand";
ArtA [2][1][2]="Am Bein Linker Fuß Back";
ArtA [2][1][3]="Am Bein Linker Fuß Hand";
Springer.init();




}
public int getState() {
return this.jumpnumber;
}

public List getPoing() {
return this.multiL;
}
public void paint( Graphics g )
{


repaint();

a = 0;
x =10;
y = 25;
int paker;
paker=jumpnumber;
multiL = new java.awt.List(paker,false);



while (jumpnumber > 0 ) {

int b = (int)(Math.random() * 3);
int c = (int)(Math.random() * 4);
int d = (int)(Math.random() * 3);
int e = (int)(Math.random() * 2);
int f = (int)(Math.random() * 4);
multiL.add(DrehungA[ b][c]+ArtA[d][e][f]);
if (x<=150) {
x = (byte) (x +15);
}
else {
x = 10;
y= (byte) (y+100);
}


jumpnumber --;
}

}


}




Mein Problem ist nun, wie kriege ich die multiL Liste sichtbar ins centerPanel??
Und nicht über den Text wundern wollte einfach mal was ausprobieren ;)
 

Guy.brush

Weißer Winterkalvill
Registriert
15.12.08
Beiträge
3.545
beschränke das Problem doch mal auf das Wesentliche und benutz bitte die CODE Tags. Sich das so anzuschauen ist einfach unübersichtlich und fördert die Motivation auch nicht gerade... ;)
 

Giskanne

Jonagold
Registriert
22.06.09
Beiträge
22
Okay danke für den Tipp. Spätestens Morgen Mittag ist es überarbeitet drinne bin jetzt zu schlapp ;)
 

Giskanne

Jonagold
Registriert
22.06.09
Beiträge
22
So, ich arbeite mal wieder an was neuem udn komm nicht weiter. Ich versuche eine Tabelle in ein GridLayout einzufügen. ICh denke das Problem liegt darin, die Tabelle einzufügen, weil ich die Tabelle schon einzelnd getestet habe, sowie das GridLayout.


import java.awt.Container;

import java.awt.GridLayout;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.AbstractTableModel;


public class Hauptprogramm extends JComponent {


public static void main(String[] args) {

JFrame f = new JFrame();
f.setSize(600, 600);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLayout( new GridLayout(2,2,10,10));
f.getContentPane().add( new Hauptprogramm());

f.setVisible(true);
}


public Hauptprogramm(){

Container cp = getRootPane();
JTable table = new JTable(new DataModel());
cp.add(new JScrollPane(table));




}

class DataModel extends AbstractTableModel {
Object[][] data = { { "one", "two", "three", "four" },
{ "five", "six", "seven", "eight" },
{ "nine", "ten", "eleven", "twelve" }};

// Prints data when table changes:
class TML implements TableModelListener {
public void tableChanged(TableModelEvent e) {

for (int i = 0; i < data.length; i++) {
for (int j = 0; j < data[0].length; j++);

}
}
}

public DataModel() {
addTableModelListener(new TML());
}

public int getColumnCount() {
return data[0].length;
}

public int getRowCount() {
return data.length;
}

public Object getValueAt(int row, int col) {
return data[row][col];
}

public void setValueAt(Object val, int row, int col) {
data[row][col] = val;
// Indicate the change has happened:
fireTableDataChanged();
}

public boolean isCellEditable(int row, int col) {
return true;
}
}
}
 

Giskanne

Jonagold
Registriert
22.06.09
Beiträge
22
Ich habe die, meiner Meinung nach, wichtigsten Parts rot markiert. Ich hoffe ihr wisst eine Lösung für das Problem. ICh verspreche diesmal auch schnell zu antworten ;)
 

Giskanne

Jonagold
Registriert
22.06.09
Beiträge
22
HAbt ihr keine Idee, gibt es keine Lösung zu dem Problem??