Jeg har lavet programmering inddelt i 6 klasser. Jeg har en klasse: public class ProductMiixGUI extends JFrame{
private void optimize() { try { String inputText = maxQuantityField.get Text().trim(); if (inputText.isEmpty() { JOptionPane.showMessageDialog(this, " Please enter a maximum quantity." , "Input Required", JOptionPane.WARNING_MESSAGE); return; } int maxQuantity; try { maxQuantity = Integer.parseInt(inputText); } catch ( NumberFormatException e ) { JOptionPane.showMessageDialog(this, "Please enter a valid integer for maximum quantity.", "Invalid Input" , JOptionPane.ERROR_MESSAGE); return; }
if /maxQuantity <= 0 ) { JOptionPane.showMessageDialog( this, " Max quantity must be a positive integer." , "Invalid Input" , JOptionPane.WARNING_MESSAGE); return; }
// Opdater UI updateTable(); totalValueLabel.setText( String.format ( " Total Value (USD) : %.2f " , productMix.calculateTotalValue())) ;
} catch ( Exception e ) {
// Generel fejlbehandling JOptionPane.showMessageDialog( this, " An error occurred during optimization: " + e.getMessage() , "Error" , JOptionPane.ERROR_MESSAGE); } } Derudover er der importExcel og exportExcel og de fungerer fint.
Når programmet køres, vises " Max quantity must be a positive integer." Mit spørgsmål: Hvad mangler i programmeringen, er der fejl i programmeringen ?
AI kræver lokal regnekraft. For Robert Luciani giver HP Z6 G5 A, - drevet af NVIDIA AI – både ekstrem ydelse, kreativ frihed og stabil drift i en støjsvag pakke.
Det kan ikke være en skrivefejl - du må jo have kopieret koden ind fra dine .java-filer. Hvis du har rettet til, fjernet noget, ændret noget, så spilder vi jo vores tid på at finde fejl.
try { String inputText = maxQuantityField.get Text().trim(); if (inputText.isEmpty()) { JOptionPane.showMessageDialog(this, "Please enter a maximum quantity.", "Input Required", JOptionPane.WARNING_MESSAGE); return; }
int maxQuantity; try { maxQuantity = Integer.parseInt(inputText); } catch (NumberFormatException e) { JOptionPane.showMessageDialog(this, "Please enter a valid integer for maximum quantity.", "Invalid Input", JOptionPane.ERROR_MESSAGE); return; }
if (maxQuantity <= 0) { JOptionPane.showMessageDialog(this, "Max quantity must be a positive integer.", "Invalid Input", JOptionPane.WARNING_MESSAGE); return; }
Jeg prøvede at lave om i fejlbeskeden: "7913 Max quantity must be a positive integer." og efterfølgende er 7913 ikke med.
( Jeg er endnu ikke helt indforstået med det sprog, der anvendes i kodeverdenen. Hvad menes med : " Det er ikke den kode, der kører. Det kan ikke oversættes" ? )
Som if-sætningen står, så får du beskeden ved indtastning af negative tal, og ved nul, men taster du et positivt tal ind, så får du ikke beskeden. Så ... hvad gør du?
Ved indtastning af negative tal og ved nul og indtastning af positive tal får jeg fejlbeskeden: " Max quantity must be a positive integer". ( Indtastning af denne positive tal skal være lig summen af Quantity ). Tom indtastningsfelt fungerer: " Please enter a maximum quantity" . Så, jeg kan ikke komme videre, desværre.
Kopi af en del af private void optimize: private void optimize() { try { String inputText = maxQuantityField.getText().trim(); if (inputText.isEmpty()) { JOptionPane.showMessageDialog(this, "Please enter a maximum quantity.", "Input Required", JOptionPane.WARNING_MESSAGE); return; }
int maxQuantity = parseMaxQuantity(inputText);
if (maxQuantity <=0) { JOptionPane.showMessageDialog(this, "79130Max quantity must be a positive integer.", "Invalid Input", JOptionPane.WARNING_MESSAGE); return; } og når programmet køres (og jeg har indtastet en positiv tal, ) får jeg fejlbeskeden "79130Max quantity must be a positive integer". Jeg kan desværre ikke vise skærmbilledet. Alternativt kan jeg sende skærmbilledet til din email.
Programmeringsproblemer løses sjældent ved geniale indfald men typisk via hårdt arbejde.
Du putter et større antal System.out.print* ind i koden så du kan følge hvad der sker. Så kører du den og kigger på det debug output og på et tidspunkt så "åh - det var der derfor".
Alternativt kan du bruge debuggeren. Eclipse virker med debugger. Jeg har dog aldrig selv brugt den.
Ved mere seriøs brug skulel du nok skifte til at bruge et logging framework f.eks. det indbyggede i Java. Så kan du nemt slå debug output fra og til.
Jeg fandt frem til følgende: double maxQuantity = Double.parseDouble(maxQuantityField.getText()); if (maxQuantity <= 0) . System.out.println ("Calling optimizeMix with maxQuantity: " + maxQuantity); og når jeg skriver et tal i indtastningsfeltet, f.eks. 405, og trykker på knappen Optimize, får jeg i konsollen : " Calling optimizeMix with maxQuantity: 405.0. " Men selve Optimize-delen fungerer ikke. Så der er lang vej endnu.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.