Dies ist eine statische Kopie unseres alten Forums. Es sind keine Interaktionen möglich.
This is a static copy of our old forum. Interactions are not possible.

denial

Erfahrener Schreiberling

  • "denial" is male

Posts: 394

Date of registration: Feb 18th 2003

Location: Göttingen

Occupation: Linux Coder (ex Mathe SR Inf Student)

21

Sunday, June 12th 2005, 2:38pm

Source code

1
2
3
4
5
6
7
do {
  boolean i=false;
  try {
  } catch() {
    i=true;
  }
} while(i)


Edit: war falsch und entsprach nicht ganz dem Bedarf (siehe folgendes posting)

This post has been edited 1 times, last edit by "denial" (Jun 12th 2005, 7:10pm)


The-Holy-One

Praktikant

  • "The-Holy-One" is male

Posts: 22

Date of registration: Oct 11th 2004

22

Sunday, June 12th 2005, 2:40pm

Na ich habe verschiedene Eingaben.
Wenn jetzt mit catch eine ungültige Eingabe abgefangen (Bsp. ein Buchstabe obwohl eine Zahl (int) erwartet wird) wird, soll zu einer erneuten Eingabe aufgefordert werden.

Und das solange bis eine korrekte Eingabe erfolgt ist.

edit: thx für die Antwort oben

This post has been edited 1 times, last edit by "The-Holy-One" (Jun 12th 2005, 2:41pm)


oixio

Senior Schreiberling

  • "oixio" is male

Posts: 517

Date of registration: Oct 3rd 2004

23

Sunday, June 12th 2005, 8:42pm

Eine Lösung wäre: Erstelle für die Eingabe eine eigene Funktion zB int getInt() oder so was. In der ist dann der try-catch-block drinne. Und aus dem catch-clock kannst du die Funktion selbst auch wieder aufrufen. Wenn du das ganze mal nen bischen durchdenkst und das rekursiv verschachtelst erreichst du das gewünschte Verhalten. Und der schlechtere Speicher & Co Verbrauch ist denk ich mal zu verschmerzen, da man im normalfall ja höchstens 1 oder 2 falsche Eingaben zu erwarten hat.

ich hoffe es ist klar geworden was ich meine ;)

mfg
oixio

Edit: und dann im catch-block vor dem erneuten Aufruf der Funktion evtl noch ne Fehlermeldung ausgebn oder so
Dieser Post wurde aus 100 % chlorfrei gebleichten, handelsüblichen, freilaufenden, glücklichen Elektronen erzeugt!

This post has been edited 2 times, last edit by "oixio" (Jun 12th 2005, 8:44pm)


The-Holy-One

Praktikant

  • "The-Holy-One" is male

Posts: 22

Date of registration: Oct 11th 2004

24

Monday, June 13th 2005, 6:05pm

Die Lösung von denial funktioniert bestens.
Vielen Dank! :)

Sinan

Senior Schreiberling

  • "Sinan" is male
  • "Sinan" started this thread

Posts: 1,021

Date of registration: Jul 5th 2003

Location: Malaga

Occupation: Senior Cloud Solution Engineer bei Oracle

25

Monday, August 22nd 2005, 7:14pm

hallo,
ich versuche gerade zur besseren Lesbarkeit die Zeilen einer Tabelle abwächselnd einzufärben:
ich gehe so vor;


DefaultTableCellRenderer dtcr = new DefaultTableCellRenderer();

for(int i=0; i<30; i++)
{
for(int j=0; j<9; j++)
{
if( i%2 == 0 )
{
tabelle.setValueAt(" ", i, j);
}
else
{
Component c = tcr.getTableCellRendererComponent(tabelle, tabelle.getValueAt(i, j), true, false, i, j);
c.setBackground(new Color(192, 192, 192));
tabelle.setValueAt(c, i, j);

klappt aber nicht, die Zeilen werden Abwechselnd mit kommischen Werten befüllt
javax.swing.table.DefaultTableCellRenderer[,0,0,0x0,invalid,alignmentX=0.0,alig........

Hat jemand ne Idee, wie ich da vorgehen soll?
With great power comes great responsibility

  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

26

Monday, August 22nd 2005, 8:36pm

Quoted

Original von Sinan
ich versuche gerade zur besseren Lesbarkeit die Zeilen einer Tabelle abwächselnd einzufärben:

c.setBackground(new Color(192, 192, 192));
tabelle.setValueAt(c, i, j);

Hat jemand ne Idee, wie ich da vorgehen soll?
Deine ganze Vorgehensweise ist ziemlich eigenartig. Du solltest dich etwass näher mit dem Konzept vertraut machen, nach dem die Zellen in einer JTable gerendert werden.

Kurz gesagt: Du mußt Dir einen eigenen Renderer schreiben und diesen verwenden. Der folgende Code ist ungetestet.

Source code

1
2
3
4
5
6
7
8
9
public final class MyRenderer extends DefaultTableCellRenderer {
  public Component getTableCellRendererComponent (JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column) {
    Component c = super.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);
    c.setBackground(Color.GRAY);
    return c;
  }
}

tabelle.setDefaultRenderer(Object.class, new myRenderer());
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

This post has been edited 1 times, last edit by "Joachim" (Aug 22nd 2005, 8:37pm)


Sinan

Senior Schreiberling

  • "Sinan" is male
  • "Sinan" started this thread

Posts: 1,021

Date of registration: Jul 5th 2003

Location: Malaga

Occupation: Senior Cloud Solution Engineer bei Oracle

27

Monday, August 22nd 2005, 10:08pm

Danke, der Code funktioniert, ABER es wird immer die ganze Tabelle eingefärbt ?(
With great power comes great responsibility

  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

28

Monday, August 22nd 2005, 11:22pm

Quoted

Original von Sinan
Danke, der Code funktioniert, ABER es wird immer die ganze Tabelle eingefärbt ?(
Wenn Du meinem Rat gefolgt wärst, dich mit der Verwendung von Renderern in Tabellen vertraut zu machen, wüßtest Du, was die Klasse MyRenderer tut und wie Du sie ändern mußt, damit die von Dir gewünschte Färbung vorgenommen wird. :)

Die dafür notwendige Abfrage steht sogar schon in dem von Dir geposteten Codeausschnitt.
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

Sinan

Senior Schreiberling

  • "Sinan" is male
  • "Sinan" started this thread

Posts: 1,021

Date of registration: Jul 5th 2003

Location: Malaga

Occupation: Senior Cloud Solution Engineer bei Oracle

29

Tuesday, August 23rd 2005, 10:32am

Quoted

Original von Joachim
Wenn Du meinem Rat gefolgt wärst ...

bin ich, nur morgens kann man besser denken :)
ich habe's so modifiziert

Source code

1
2
3
4
5
6
7
8
9
                JLabel label = new JLabel((String)value);
   		label.setOpaque(true);
   		label.setForeground(table.getForeground());
   		label.setBackground(table.getBackground());
   		if ( row%2 != 0 )
   		{
   			label.setBackground(new Color(244, 244, 244));
   		}
   		return label;
With great power comes great responsibility

Teklan

Erfahrener Schreiberling

Posts: 267

Date of registration: Nov 13th 2004

Location: Hannover

30

Thursday, August 25th 2005, 5:18pm

Quoted

while (true) {
try {
System.out.println("Bitte die Länge des Arrays eingeben");
h = scanner.nextInt();
break;
}
catch(NegativeArraySizeException n) {
String s = scanner.next();
System.out.println("Bitte die Länge des Arrays erneut eingeben");
throw n;
}
}


Gebe ich z.B: einen negativen Wert für h ein, so erscheint zwar NegativeArraySizeException, aber man kann nicht erneut eingeben, sondern das Programm beendet sich. Aber warum?

serotonin

Trainee

Posts: 96

Date of registration: Oct 24th 2003

Occupation: was wohl?

31

Thursday, August 25th 2005, 7:32pm

Versuch mal das "throw n" wegzulassen, ich glaub dann läufts normal weiter.
[SIZE=7]Kann auch falsch sein, in meinem Gehirn fliegen gerade SCRUMs, SPICE und andere Widerlichkeiten rum, die mich benebeln[/SIZE] =)
"Data items tend to be like children; they enjoy hanging around in groups together."

  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

32

Thursday, August 25th 2005, 10:19pm

Quoted

Original von serotonin
Versuch mal das "throw n" wegzulassen, ich glaub dann läufts normal weiter.
[SIZE=7]Kann auch falsch sein, in meinem Gehirn fliegen gerade SCRUMs, SPICE und andere Widerlichkeiten rum, die mich benebeln[/SIZE] =)
Noch eine Ergänzung/Bitte von meiner Seite: Bitte macht doch für jedes neue Java-Problem einen eigenen Thread auf. Ein Thread wie dieser, in dem alle Java-Fragen gesammelt sind, ist nicht nur völlig unübersichtlich, sondern auch mit der Suchfunktion nicht vernünftig zu durchforsten. Danke. :)
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

This post has been edited 1 times, last edit by "Joachim" (Aug 25th 2005, 10:20pm)