Ich stehe vor einem Problem. Konkret geht es darum, dass ich in ein Label während des Programmverlaufs die Bilder verändere. Immer beim Laden einer BMP allerdings tritt ein NullPointerException-Fehler auf. In der Konsole ausgegeben sieht der Fehler so aus:
Nun war meine erste Vermutung, dass meine Version des Ladens keine BMPs unterstützt, was mir von Leuten die einfach gesagt viel viel mehr Ahnung haben als ich (im Chat) verneint wurde. Somit muss es einen anderen Grund geben.
Nun zu meinem Code:
An dieser Stelle werden die Bilder geladen:
Und "getimage(int oindex)" ist dabei eine Methode die den konkreten Dateinamen als String zurückgibt. Hier auch noch diese:
Die erste Vermutung, dass er die einfach BMPs nicht finden kann möchte ich eigentlich ausschließen, denn ersten habe ich getestet wie das Programm auf eine nicht-vorhandene Datei reagiert und da kam eine andere Fehlermeldung (javax.imageio.IIOException: Can't read input file!) und zweitens federt das ja theoretisch die getimage-Methode mit der Überprüfung auf file.exists() ab...
Ich weiß ja nicht, ob z.B. dieses getScalledInstance mit den BMPs nicht zurecht kommt oder so, aber deshalb frag ich ja hier nach...
#########
Als letztes nochmals den gesamten Code damit sich solche Fragen erübrigen und ihr selbst schauen könnt wie ich das gemacht hab und auch testen könnt wenn ihr wollt.
##such.java##
##tobjekt.java##
##tregister.java##
##tdisponent.java##
package unbenannt2;
public class tdisponent
{
String nr;
String telnr;
String name;
public tdisponent()
{
nr = "";
telnr = "";
name = "";
}
public String gettelnr()
{
try
{
return "(9 25 31) " + telnr.charAt(0) + " " + telnr.substring(1);
} catch (Exception e)
{
return "keine Nr. vorhanden";
}
}
}[/code]
##tzuordnung.java##
######
Und nochmal wie die Dateien Aufgebaut sind, aus denen ich lade:
##data.txt##
##dispdata.txt##
Sooo... zum laden müsste man es noch signieren, aber das wisst ihr ja selbst ;-)
Außerdem ist da natürlich noch der Bilderordner mit den JPGs und BMPs die alle nach dem Muster [SAPNr].JPG bzw. [SAPNr].bmp aufgebaut sind...
Vielen Dank für eure Hilfe!!!
Stephan.
Edit Illuvatar: In der Breite gekürzt
Code:
java.lang.NullPointerException
at unbenannt2.such.show(such.java:320)
at unbenannt2.such.vorbutton_actionPerformed(such.java:438)
at unbenannt2.such_vorbutton_actionAdapter.actionPerformed(such.java:528)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$ForwardActionEvents.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.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.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.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(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)
Nun zu meinem Code:
An dieser Stelle werden die Bilder geladen:
Code:
try
{
pic1.setIcon(new ImageIcon(ImageIO.read(new File(getimage(oindex))).getScaledInstance(140,100,Image.SCALE_SMOOTH)));
pic2.setIcon(new ImageIcon(ImageIO.read(new File(getimage(oindex+1))).getScaledInstance(140,100,Image.SCALE_SMOOTH)));
pic3.setIcon(new ImageIcon(ImageIO.read(new File(getimage(oindex+2))).getScaledInstance(140,100,Image.SCALE_SMOOTH)));
pic4.setIcon(new ImageIcon(ImageIO.read(new File(getimage(oindex+3))).getScaledInstance(140,100,Image.SCALE_SMOOTH)));
} catch (Exception e)
{
JOptionPane.showMessageDialog(null,"Fehler beim Laden der Bilddateien.");
e.printStackTrace();
}
Code:
public String getimage(int oindex)
{
if (suchan)
{
File BildJPG = new File(pfad + "bilder/" + suchregister.objekt[oindex].sap + ".JPG");
File BildBMP = new File(pfad + "bilder/" + suchregister.objekt[oindex].sap + ".bmp");
if (suchregister.objekt[oindex].sap.equals("00000000")) return pfad + "spacer.gif";
if (BildJPG.exists()) return pfad + "bilder/" + suchregister.objekt[oindex].sap + ".JPG";
if (BildBMP.exists()) return pfad + "bilder/" + suchregister.objekt[oindex].sap + ".bmp";
}
else
{
File BildJPG = new File(pfad + "bilder/" + register.objekt[oindex].sap + ".JPG");
File BildBMP = new File(pfad + "bilder/" + register.objekt[oindex].sap + ".bmp");
if (register.objekt[oindex].sap.equals("00000000")) return pfad + "spacer.gif";
if (BildJPG.exists()) return pfad + "bilder/" + register.objekt[oindex].sap + ".JPG";
if (BildBMP.exists()) return pfad + "bilder/" + register.objekt[oindex].sap + ".bmp";
}
return pfad + "spacer.gif";
}
Ich weiß ja nicht, ob z.B. dieses getScalledInstance mit den BMPs nicht zurecht kommt oder so, aber deshalb frag ich ja hier nach...
#########
Als letztes nochmals den gesamten Code damit sich solche Fragen erübrigen und ihr selbst schauen könnt wie ich das gemacht hab und auch testen könnt wenn ihr wollt.
##such.java##
Code:
package unbenannt2;
import java.awt.*;
import java.applet.*;
import javax.swing.JLabel;
import javax.swing.ImageIcon;
import javax.swing.*;
import java.io.File;
import java.io.FileReader;
import java.io.LineNumberReader;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.net.URLDecoder;
import javax.imageio.ImageIO;
public class such extends Applet
{
tregister register = new tregister();
tregister suchregister = new tregister();
tzuordnung zuordnung = new tzuordnung();
int position = 0;
int suchposition = 0;
boolean suchan = false;
int datazahl;
int suchdatazahl;
String pfad;
BorderLayout borderLayout1 = new BorderLayout();
JLabel title = new JLabel();
JLabel info1 = new JLabel();
JLabel pic1 = new JLabel();
JLabel info2 = new JLabel();
JLabel pic2 = new JLabel();
JLabel info3 = new JLabel();
JLabel pic3 = new JLabel();
JLabel info4 = new JLabel();
JLabel pic4 = new JLabel();
JRadioButton rbsap = new JRadioButton();
JRadioButton rbbezeichnung = new JRadioButton();
JTextField suchfeld = new JTextField();
JButton suchbutton = new JButton();
ButtonGroup rbgruppe = new ButtonGroup();
JButton backbutton = new JButton();
JButton vorbutton = new JButton();
JButton zurueckbutton = new JButton();
JButton anfangbutton = new JButton();
JButton endebutton = new JButton();
JLabel navigationslabel = new JLabel();
public such()
{
}
//Das Applet initialisieren
public void init()
{
pfad = getCodeBase().toString().trim().substring(6) + "data/";
try
{
pfad = URLDecoder.decode(pfad, "utf8");
} catch (Exception e){}
loaddata();
try
{
jbInit();
} catch (Exception e)
{
e.printStackTrace();
}
}
//Initialisierung der Komponenten
private void jbInit() throws Exception
{
this.setLayout(null);
this.setBackground(Color.white);
//Setting für Überschrift (title)
title.setFont(new java.awt.Font("Arial", Font.BOLD, 12));
title.setText("Unser Tauschkatalog");
title.setBounds(new Rectangle(390, 7, 121, 21));
//Setting für erstes Infofeld (pic1, info1)
pic1.setBounds(new Rectangle(50, 50, 140, 100));
info1.setFont(new java.awt.Font("Arial", Font.PLAIN, 12));
info1.setBounds(new Rectangle(50, 160, 170, 130));
info1.setVerticalAlignment(SwingConstants.TOP);
info1.setVerticalTextPosition(SwingConstants.TOP);
//Setting für das zweite Infofeld (pic2, info2)
pic2.setBounds(new Rectangle(260, 50, 140, 100));
info2.setFont(new java.awt.Font("Arial", Font.PLAIN, 12));
info2.setBounds(new Rectangle(260, 160, 170, 130));
info2.setVerticalAlignment(SwingConstants.TOP);
info2.setVerticalTextPosition(SwingConstants.TOP);
//Setting für das dritte Infofeld (pic3, info3)
pic3.setBounds(new Rectangle(470, 50, 140, 100));
info3.setFont(new java.awt.Font("Arial", Font.PLAIN, 12));
info3.setBounds(new Rectangle(470, 160, 170, 130));
info3.setVerticalAlignment(SwingConstants.TOP);
info3.setVerticalTextPosition(SwingConstants.TOP);
//Setting für das vierte Infofeld (pic4, info4)
pic4.setBounds(new Rectangle(680, 50, 140, 100));
info4.setFont(new java.awt.Font("Arial", Font.PLAIN, 12));
info4.setBounds(new Rectangle(680, 160, 170, 130));
info4.setVerticalAlignment(SwingConstants.TOP);
info4.setVerticalTextPosition(SwingConstants.TOP);
//Setting für die Suchabfrage
rbsap.setText("Suche nach SAPNr");
rbsap.setBounds(new Rectangle(700, 305, 150, 20));
rbsap.setBackground(Color.white);
rbsap.setSelected(true);
vorbutton.addActionListener(new such_vorbutton_actionAdapter(this));
zurueckbutton.addActionListener(new such_zurueckbutton_actionAdapter(this));
anfangbutton.addActionListener(new such_anfangbutton_actionAdapter(this));
endebutton.addActionListener(new such_endebutton_actionAdapter(this));
rbgruppe.add(rbsap);
rbbezeichnung.setText("Suche nach Bezeichnung");
rbbezeichnung.setBounds(new Rectangle(700, 325, 200, 20));
rbbezeichnung.setBackground(Color.white);
rbgruppe.add(rbbezeichnung);
suchfeld.setText("");
suchfeld.setBounds(new Rectangle(700, 345, 150, 20));
suchbutton.setBounds(new Rectangle(700, 375, 80, 25));
suchbutton.setText("Suche...");
suchbutton.addActionListener(new such_suchbutton_actionAdapter(this));
//Zurück zur gesamten DB- Button
backbutton.setBounds(new Rectangle(320, 375, 260, 25));
backbutton.setText("Zurück zum gesamten Tauschkatalog");
backbutton.setVisible(false);
backbutton.addActionListener(new such_backbutton_actionAdapter(this));
//Navigation
navigationslabel.setFont(new java.awt.Font("Arial", Font.BOLD, 11));
navigationslabel.setText("Navigation:");
navigationslabel.setBounds(new Rectangle(52, 358, 65, 15));
anfangbutton.setToolTipText("Erste Seite");
anfangbutton.setBounds(new Rectangle(50, 375, 50, 25));
anfangbutton.setText("<<");
zurueckbutton.setToolTipText("Seite zurück");
zurueckbutton.setBounds(new Rectangle(110, 375, 42, 25));
zurueckbutton.setText("<");
vorbutton.setToolTipText("Seite vor");
vorbutton.setBounds(new Rectangle(153, 375, 42, 25));
vorbutton.setText(">");
endebutton.setToolTipText("Letzte Seite");
endebutton.setBounds(new Rectangle(205, 375, 50, 25));
endebutton.setText(">>");
//Hinzufügen auf die Oberfläche
this.add(title, null);
this.add(info1, null);
this.add(pic1, null);
this.add(info2, null);
this.add(pic2, null);
this.add(info3, null);
this.add(pic3, null);
this.add(info4, null);
this.add(pic4, null);
this.add(rbsap, null);
this.add(rbbezeichnung, null);
this.add(suchfeld, null);
this.add(suchbutton, null);
this.add(backbutton, null);
this.add(vorbutton, null);
this.add(zurueckbutton, null);
this.add(anfangbutton, null);
this.add(endebutton, null);
this.add(navigationslabel);
//Anzeigen Angefangen beim 0.
show(position);
}
public void loaddata()
{
try
{
FileReader load = new FileReader(pfad + "data.txt");
LineNumberReader line = new LineNumberReader(load);
String zeile;
for (int i = 0; i < 2001; i++)
{
zeile = line.readLine();
if (zeile == null)
{
datazahl = i;
break;
}
register.objekt[i].disponent = zeile.substring(1,4);
register.objekt[i].sap = zeile.substring(7,15);
register.objekt[i].info = zeile.substring(18,zeile.length()-1);
}
load.close();
} catch (Exception e)
{
e.printStackTrace();
JOptionPane.showMessageDialog(null,"Fehler beim Lesen der Datendatei (data.txt).");
}
try
{
FileReader load = new FileReader(pfad + "dispdata.txt");
LineNumberReader line = new LineNumberReader(load);
String zeile;
for (int i = 0; i < 100; i++)
{
zeile = line.readLine();
if (zeile == null) break;
zuordnung.disponent[i].nr = zeile.substring(0,3);
zuordnung.disponent[i].telnr = zeile.substring(4,7);
zuordnung.disponent[i].name = zeile.substring(8);
}
load.close();
} catch (Exception e)
{
e.printStackTrace();
JOptionPane.showMessageDialog(null,"Fehler beim Lesen der Datendatei (dispdata.txt).");
}
}
public String getimage(int oindex)
{
if (suchan)
{
File BildJPG = new File(pfad + "bilder/" + suchregister.objekt[oindex].sap + ".JPG");
// File BildBMP = new File(pfad + "bilder/" + suchregister.objekt[oindex].sap + ".bmp");
if (suchregister.objekt[oindex].sap.equals("00000000")) return pfad + "spacer.gif";
if (BildJPG.exists()) return pfad + "bilder/" + suchregister.objekt[oindex].sap + ".JPG";
// if (BildBMP.exists()) return pfad + "bilder/" + suchregister.objekt[oindex].sap + ".bmp";
}
else
{
File BildJPG = new File(pfad + "bilder/" + register.objekt[oindex].sap + ".JPG");
// File BildBMP = new File(pfad + "bilder/" + register.objekt[oindex].sap + ".bmp");
if (register.objekt[oindex].sap.equals("00000000")) return pfad + "spacer.gif";
if (BildJPG.exists()) return pfad + "bilder/" + register.objekt[oindex].sap + ".JPG";
// if (BildBMP.exists()) return pfad + "bilder/" + register.objekt[oindex].sap + ".bmp";
}
return pfad + "spacer.gif";
}
public void show(int oindex)
{
int dindex = 99;
if (suchan)
{
if (suchposition == 0)
{
anfangbutton.setEnabled(false);
zurueckbutton.setEnabled(false);
}
else
{
anfangbutton.setEnabled(true);
zurueckbutton.setEnabled(true);
}
if (suchposition > suchdatazahl - 5)
{
endebutton.setEnabled(false);
vorbutton.setEnabled(false);
}
else
{
endebutton.setEnabled(true);
vorbutton.setEnabled(true);
}
try
{
JOptionPane.showMessageDialog(null,getimage(oindex));
pic1.setIcon(new ImageIcon(ImageIO.read(new File(getimage(oindex))).getScaledInstance(140,100,Image.SCALE_SMOOTH)));
JOptionPane.showMessageDialog(null,getimage(oindex+1));
pic2.setIcon(new ImageIcon(ImageIO.read(new File(getimage(oindex+1))).getScaledInstance(140,100,Image.SCALE_SMOOTH)));
JOptionPane.showMessageDialog(null,getimage(oindex+2));
pic3.setIcon(new ImageIcon(ImageIO.read(new File(getimage(oindex+2))).getScaledInstance(140,100,Image.SCALE_SMOOTH)));
JOptionPane.showMessageDialog(null,getimage(oindex+3));
pic4.setIcon(new ImageIcon(ImageIO.read(new File(getimage(oindex+3))).getScaledInstance(140,100,Image.SCALE_SMOOTH)));
} catch (Exception e)
{
JOptionPane.showMessageDialog(null,"Fehler beim Laden der Bilddateien.");
e.printStackTrace();
}
dindex = zuordnung.getindex(suchregister.objekt[oindex].disponent);
if (!(suchregister.objekt[oindex].sap.equals("00000000"))) info1.setText("<html>[b]" + suchregister.
objekt[oindex].info + "[/b]
SAP - " + suchregister.objekt[oindex].sap + "
Disponent - " + zuordnung.
disponent[dindex].name + "
Tel. - " + zuordnung.disponent[dindex].gettelnr() + "</html>");
else info1.setText("");
dindex = zuordnung.getindex(suchregister.objekt[oindex+1].disponent);
if (!(suchregister.objekt[oindex+1].sap.equals("00000000"))) info2.setText("<html>[b]" + suchregister.
objekt[oindex+1].info + "[/b]
SAP - " + suchregister.objekt[oindex+1].sap + "
Disponent - " +
zuordnung.disponent[dindex].name + "
Tel. - " + zuordnung.disponent[dindex].gettelnr() + "</html>");
else info2.setText("");
dindex = zuordnung.getindex(suchregister.objekt[oindex+2].disponent);
if (!(suchregister.objekt[oindex+2].sap.equals("00000000"))) info3.setText("<html>[b]" + suchregister.
objekt[oindex+2].info + "[/b]
SAP - " + suchregister.objekt[oindex+2].sap + "
Disponent - " +
zuordnung.disponent[dindex].name + "
Tel. - " + zuordnung.disponent[dindex].gettelnr() + "</html>");
else info3.setText("");
dindex = zuordnung.getindex(suchregister.objekt[oindex+3].disponent);
if (!(suchregister.objekt[oindex+3].sap.equals("00000000"))) info4.setText("<html>[b]" + suchregister.
objekt[oindex+3].info + "[/b]
SAP - " + suchregister.objekt[oindex+3].sap + "
Disponent - " +
zuordnung.disponent[dindex].name + "
Tel. - " + zuordnung.disponent[dindex].gettelnr() + "</html>");
else info4.setText("");
}
else
{
if (position == 0)
{
anfangbutton.setEnabled(false);
zurueckbutton.setEnabled(false);
}
else
{
anfangbutton.setEnabled(true);
zurueckbutton.setEnabled(true);
}
if (position > datazahl - 5)
{
endebutton.setEnabled(false);
vorbutton.setEnabled(false);
}
else
{
endebutton.setEnabled(true);
vorbutton.setEnabled(true);
}
try
{
JOptionPane.showMessageDialog(null,getimage(oindex));
pic1.setIcon(new ImageIcon(ImageIO.read(new File(getimage(oindex))).getScaledInstance(140,100,Image.SCALE_SMOOTH)));
JOptionPane.showMessageDialog(null,getimage(oindex+1));
pic2.setIcon(new ImageIcon(ImageIO.read(new File(getimage(oindex+1))).getScaledInstance(140,100,Image.SCALE_SMOOTH)));
JOptionPane.showMessageDialog(null,getimage(oindex+2));
pic3.setIcon(new ImageIcon(ImageIO.read(new File(getimage(oindex+2))).getScaledInstance(140,100,Image.SCALE_SMOOTH)));
JOptionPane.showMessageDialog(null,getimage(oindex+3));
pic4.setIcon(new ImageIcon(ImageIO.read(new File(getimage(oindex+3))).getScaledInstance(140,100,Image.SCALE_SMOOTH)));
} catch (Exception e)
{
JOptionPane.showMessageDialog(null,"Fehler beim Laden der Bilddateien.");
e.printStackTrace();
}
dindex = zuordnung.getindex(register.objekt[oindex].disponent);
if (!(register.objekt[oindex].sap.equals("00000000"))) info1.setText("<html>[b]" + register.objekt[oindex].
info + "[/b]
SAP - " + register.objekt[oindex].sap + "
Disponent - " + zuordnung.disponent[dindex].
name + "
Tel. - " + zuordnung.disponent[dindex].gettelnr() + "</html>");
else info1.setText("");
dindex = zuordnung.getindex(register.objekt[oindex+1].disponent);
if (!(register.objekt[oindex+1].sap.equals("00000000"))) info2.setText("<html>[b]" + register.
objekt[oindex+1].info + "[/b]
SAP - " + register.objekt[oindex+1].sap + "
Disponent - " + zuordnung.
disponent[dindex].name + "
Tel. - " + zuordnung.disponent[dindex].gettelnr() + "</html>");
else info2.setText("");
dindex = zuordnung.getindex(register.objekt[oindex+2].disponent);
if (!(register.objekt[oindex+2].sap.equals("00000000"))) info3.setText("<html>[b]" + register.
objekt[oindex+2].info + "[/b]
SAP - " + register.objekt[oindex+2].sap + "
Disponent - " + zuordnung.
disponent[dindex].name + "
Tel. - " + zuordnung.disponent[dindex].gettelnr() + "</html>");
else info3.setText("");
dindex = zuordnung.getindex(register.objekt[oindex+3].disponent);
if (!(register.objekt[oindex+3].sap.equals("00000000"))) info4.setText("<html>[b]" + register.
objekt[oindex+3].info + "[/b]
SAP - " + register.objekt[oindex+3].sap + "
Disponent - " + zuordnung.
disponent[dindex].name + "
Tel. - " + zuordnung.disponent[dindex].gettelnr() + "</html>");
else info4.setText("");
}
}
public void suchbutton_actionPerformed(ActionEvent e)
{
for (int i = 0; i < 2000; i++)
{
if (suchregister.objekt[i].sap.equals("00000000")) break;
suchregister.objekt[i].resetdata();
}
String suchwort = suchfeld.getText();
suchwort = suchwort.trim();
if (suchwort.length() == 6) suchwort = "00" + suchwort;
if (rbsap.isSelected())
{
// SAPNr - suche
if (suchwortpruef(suchwort))
{
int oindex = register.suchesap(suchwort);
if (oindex == -1 || suchwort.equals("00000000")) JOptionPane.showMessageDialog(null, "Die SAPNr wurde im Tauschkatalog nicht gefunden.");
else
{
suchregister.objekt[0].info = register.objekt[oindex].info;
suchregister.objekt[0].sap = register.objekt[oindex].sap;
suchregister.objekt[0].disponent = register.objekt[oindex].disponent;
backbutton.setVisible(true);
suchbutton.setEnabled(false);
suchan = true;
suchdatazahl = 1;
suchposition = 0;
show(suchposition);
}
}
else
{
JOptionPane.showMessageDialog(null, "Bitte geben Sie eine zulässige SAPNr ein");
}
}
else
{
// Bezeichnungs - suche
int anzahl = 0;
int oindex = 0;
do
{
oindex = register.sucheinfo(suchwort,oindex);
if (oindex == -1) break;
else
{
suchregister.objekt[anzahl].info = register.objekt[oindex].info;
suchregister.objekt[anzahl].sap = register.objekt[oindex].sap;
suchregister.objekt[anzahl].disponent = register.objekt[oindex].disponent;
anzahl++;
}
} while(true);
if (suchregister.objekt[0].sap.equals("00000000")) JOptionPane.showMessageDialog(null, "Die Bezeichnung wurde im Tauschkatalog nicht gefunden.");
else
{
backbutton.setVisible(true);
suchbutton.setEnabled(false);
suchan = true;
suchdatazahl = anzahl;
suchposition = 0;
show(suchposition);
}
}
}
public boolean suchwortpruef(String suchwort)
{
if (suchwort.length() != 8) return false;
for (int i = 0; i < 8; i++)
{
if (!(Character.isDigit(suchwort.charAt(i)))) return false;
}
return true;
}
public void backbutton_actionPerformed(ActionEvent e)
{
suchan = false;
backbutton.setVisible(false);
suchbutton.setEnabled(true);
show(position);
}
public void vorbutton_actionPerformed(ActionEvent e)
{
if (suchan)
{
suchposition += 4;
show(suchposition);
}
else
{
position += 4;
show(position);
}
}
public void zurueckbutton_actionPerformed(ActionEvent e)
{
if (suchan)
{
if (suchposition < 4) suchposition = 0;
else suchposition-=4;
show(suchposition);
}
else
{
if (position < 4) position = 0;
else position-=4;
show(position);
}
}
public void anfangbutton_actionPerformed(ActionEvent e)
{
if (suchan)
{
suchposition = 0;
show(suchposition);
}
else
{
position = 0;
show(position);
}
}
public void endebutton_actionPerformed(ActionEvent e)
{
if (suchan)
{
suchposition = suchdatazahl - 4;
show(suchposition);
}
else
{
position = datazahl - 4;
show(position);
}
}
}
class such_endebutton_actionAdapter implements ActionListener
{
private such adaptee;
such_endebutton_actionAdapter(such adaptee)
{
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e)
{
adaptee.endebutton_actionPerformed(e);
}
}
class such_anfangbutton_actionAdapter implements ActionListener
{
private such adaptee;
such_anfangbutton_actionAdapter(such adaptee)
{
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e)
{
adaptee.anfangbutton_actionPerformed(e);
}
}
class such_vorbutton_actionAdapter implements ActionListener
{
private such adaptee;
such_vorbutton_actionAdapter(such adaptee)
{
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e)
{
adaptee.vorbutton_actionPerformed(e);
}
}
class such_zurueckbutton_actionAdapter implements ActionListener
{
private such adaptee;
such_zurueckbutton_actionAdapter(such adaptee)
{
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e)
{
adaptee.zurueckbutton_actionPerformed(e);
}
}
class such_backbutton_actionAdapter implements ActionListener
{
private such adaptee;
such_backbutton_actionAdapter(such adaptee)
{
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e)
{
adaptee.backbutton_actionPerformed(e);
}
}
class such_suchbutton_actionAdapter implements ActionListener {
private such adaptee;
such_suchbutton_actionAdapter(such adaptee) {
this.adaptee = adaptee;
}
public void actionPerformed(ActionEvent e) {
adaptee.suchbutton_actionPerformed(e);
}
}
Code:
package unbenannt2;
public class tobjekt
{
String info;
String sap;
String disponent;
public tobjekt()
{
resetdata();
}
public void resetdata()
{
this.info = "";
this.sap = "00000000";
this.disponent = "";
}
}
Code:
package unbenannt2;
public class tregister
{
tobjekt objekt[] = new tobjekt[2000];
public tregister()
{
for (int i = 0; i < 2000; i++)
{
objekt[i] = new tobjekt();
}
}
public int suchesap(String ssap)
{
for (int i = 0; i < 2000; i++)
{
if (ssap.equals(this.objekt[i].sap)) return i;
}
return -1;
}
public int sucheinfo(String sbezeichnung, int sindex)
{
for (int i = sindex + 1; i < 2000; i++)
{
String bezeichnung = this.objekt[i].info.toLowerCase();
if (bezeichnung.indexOf(sbezeichnung.toLowerCase()) != -1) return i;
}
return -1;
}
}
package unbenannt2;
public class tdisponent
{
String nr;
String telnr;
String name;
public tdisponent()
{
nr = "";
telnr = "";
name = "";
}
public String gettelnr()
{
try
{
return "(9 25 31) " + telnr.charAt(0) + " " + telnr.substring(1);
} catch (Exception e)
{
return "keine Nr. vorhanden";
}
}
}[/code]
##tzuordnung.java##
Code:
package unbenannt2;
public class tzuordnung
{
tdisponent disponent[] = new tdisponent[100];
public tzuordnung()
{
for (int i = 0; i < 100; i++)
{
disponent[i] = new tdisponent();
}
}
public int getindex(String nr)
{
for (int i = 0; i < 99; i++)
{
if (nr.equals(disponent[i].nr)) return i;
}
return 99;
}
}
######
Und nochmal wie die Dateien Aufgebaut sind, aus denen ich lade:
##data.txt##
Code:
"Z08";"00103016";"Temperaturfühler"
"Z08";"00103017";"Temperaturfühler K1f2"
"Z09";"00105966";"Steckplatte 10KH20B Speisegerät f. Stromversorgung"
"Z08";"00179665";"SCHWANENHALSMIKROFON M.TASTE(RICHTMIKR.)TM110/TF/V363/2 SH 500*15"
"114";"00192215";"Manometer D=49 0-10bar m Träger"
"Z09";"00198982";"Baustein ARB-P4V 2-2"
"Z09";"00198986";"Impulsübertrager IPAG 422.01.1A"
"114";"00199289";"Gleichrichter GRS 9 / Satz/"
"Z08";"00199296";"Wechselrichter 1kVA IE-HWR 1000/110"
"Z08";"00199297";"Wechselrichter GW-G 110/E 220-G +-24-Wr 1 (1000VA,110-220V, 50Hz)"
"Z08";"00199298";"Wechselrichter IE-HWR 4000/110/50 Hz"
"Z08";"00199299";"Wechselrichter IE-HWR 4000/110/100 Hz"
"Z08";"00199301";"Wechselrichter GW-G110/E220-7,0 Wr-2 , 1500VA, 50 Hz"
"Z08";"00199302";"Wechselrichter IE HWR 3000/110 Gehäuse m. 3 Durchführungen"
"114";"00199305";"Wechselrichter WR 4 kpl"
"Z08";"00199311";"Ladegerät 120V, 16 2/3 Hz + 50Hz"
"Z08";"00199314";"Baueinheit 1 z Ladegerät ELH 511"
"Z08";"00199315";"Baueinheit 2 z Ladegerät ELH 511"
"Z08";"00199316";"Baueinheit 3 z Ladegerät ELH 511"
"Z08";"00199319";"Baueinheit 1 z Ladegerät ELH511.1 f E151"
...
Code:
114 330 Frau Pörtner
A14 330 Frau Pörtner
E14 330 Frau Pörtner
N14 330 Frau Pörtner
P14 330 Frau Pörtner
U08 330 Frau Pörtner
V08 330 Frau Pörtner
W08 330 Frau Pörtner
Y08 330 Frau Pörtner
Z08 330 Frau Pörtner
116 429 Frau Schikatzki
A16 429 Frau Schikatzki
E16 429 Frau Schikatzki
N16 429 Frau Schikatzki
P16 429 Frau Schikatzki
U09 429 Frau Schikatzki
V09 429 Frau Schikatzki
W09 429 Frau Schikatzki
Y09 429 Frau Schikatzki
Z09 429 Frau Schikatzki
126 419 Frau Hartmann
A26 419 Frau Hartmann
E26 419 Frau Hartmann
N26 419 Frau Hartmann
P26 419 Frau Hartmann
U15 419 Frau Hartmann
V15 419 Frau Hartmann
W15 419 Frau Hartmann
Y15 419 Frau Hartmann
Z15 419 Frau Hartmann
Sooo... zum laden müsste man es noch signieren, aber das wisst ihr ja selbst ;-)
Außerdem ist da natürlich noch der Bilderordner mit den JPGs und BMPs die alle nach dem Muster [SAPNr].JPG bzw. [SAPNr].bmp aufgebaut sind...
Vielen Dank für eure Hilfe!!!
Stephan.
Edit Illuvatar: In der Breite gekürzt