Ich habe ein Problem mit dem Focus beim JInternalFrame.
Bei einer Tabelle wähle ich eine Zeile aus und lasse dann
ein JInternalFrame öffnen wo ich die Daten der Tabelle bearbeiten kann.
Nur beim anzeigen wird das Frame nicht richtig angezeigt.
Hab auch schon frame.pack() und frame.requestFocus probiert, nix geht.
Hier mal der Code von dem JInternalFrame.
Bei einer Tabelle wähle ich eine Zeile aus und lasse dann
ein JInternalFrame öffnen wo ich die Daten der Tabelle bearbeiten kann.
Nur beim anzeigen wird das Frame nicht richtig angezeigt.
Hab auch schon frame.pack() und frame.requestFocus probiert, nix geht.
Hier mal der Code von dem JInternalFrame.
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.io.*;
import java.util.*;
public class BearbeitenDVD extends JInternalFrame {
JLabel daten,titel,fsk,laufzeit,genre,jahr,leer;
static JLabel labelCover;
static JInternalFrame frame_dvd;
static JTextField feld_titel,feld_laufzeit,feld_jahr;
static JComboBox combo_genre,combo_fsk;
String[] genre_array = {"Abenteuer","Action","Drama","Drama, Krieg","Fantasy","Horror",
"Komödie","Krieg","Science Fiction","Science Fiction","Thriller"};
String[] fsk_array = {"6","12","16","18"};
static JButton cover_auswahl,ok,abbrechen;
static String cover;
static String combo_genre_auswahl,combo_fsk_auswahl;
BearbeitenDVD() {
//super();
frame_dvd = new JInternalFrame("Eintrag bearbeiten",true,true,true,true);
frame_dvd.setLocation(250,100);
frame_dvd.setLayout(null);
frame_dvd.setSize(410,300);
daten = new JLabel(" Hauptdaten des Eintrags");
daten.setBounds(170,20,210,15);
// JLabel mit Hintergrundfarbe
daten.setOpaque(true);
daten.setBackground(new Color(50,113,205));
daten.setForeground(Color.white);
titel = new JLabel("Titel:");
titel.setBounds(170,60,50,15);
feld_titel = new JTextField("" + VideothekMain.v.tdvd.tabelle_dvd.getValueAt(TabelleListener.auswahl_dvd,1));
feld_titel.setBounds(240,58,140,20);
genre = new JLabel("Genre:");
genre.setBounds(170,90,50,15);
combo_genre_auswahl = "" + VideothekMain.v.tdvd.tabelle_dvd.getValueAt(TabelleListener.auswahl_dvd,2);
combo_genre = new JComboBox(genre_array);
combo_genre.setSelectedItem(combo_genre_auswahl);
combo_genre.setBounds(241,88,120,20);
laufzeit = new JLabel("Laufzeit:");
laufzeit.setBounds(170,120,50,15);
feld_laufzeit = new JTextField("" + VideothekMain.v.tdvd.tabelle_dvd.getValueAt(TabelleListener.auswahl_dvd,3));
feld_laufzeit.setBounds(240,118,60,20);
jahr = new JLabel("Jahr:");
jahr.setBounds(170,150,50,15);
feld_jahr = new JTextField("" + VideothekMain.v.tdvd.tabelle_dvd.getValueAt(TabelleListener.auswahl_dvd,4));
feld_jahr.setBounds(240,148,60,20);
fsk = new JLabel("FSK:");
fsk.setBounds(170,180,50,15);
combo_fsk_auswahl = "" + VideothekMain.v.tdvd.tabelle_dvd.getValueAt(TabelleListener.auswahl_dvd,5);
combo_fsk = new JComboBox(fsk_array);
combo_fsk.setSelectedItem(combo_fsk_auswahl);
combo_fsk.setBounds(240,178,50,20);
leer = new JLabel("");
leer.setBounds(170,215,210,15);
leer.setOpaque(true);
leer.setBackground(new Color(50,113,205));
ok = new JButton("OK");
ok.setBounds(170,242,80,20);
ok.addActionListener(new ButtonListener());
abbrechen = new JButton("Abbrechen");
abbrechen.setBounds(260,242,110,20);
abbrechen.addActionListener(new ButtonListener());
cover_auswahl = new JButton("Cover");
cover_auswahl.addActionListener(new CoverListener());
cover_auswahl.setBounds(20,17,80,20);
labelCover = new JLabel();
labelCover.setBounds(20,60,120,170);
labelCover.setOpaque(true);
labelCover.setBackground(new Color(255,0,0));
cover = "" + VideothekMain.v.tdvd.tabelle_dvd.getValueAt(TabelleListener.auswahl_dvd,0);
ImageIcon icon = new ImageIcon(cover);
icon.setImage(icon.getImage().getScaledInstance(120,170,Image.SCALE_DEFAULT));
labelCover.setIcon(icon);
frame_dvd.add(daten);
frame_dvd.add(titel);
frame_dvd.add(feld_titel);
frame_dvd.add(genre);
frame_dvd.add(combo_genre);
frame_dvd.add(laufzeit);
frame_dvd.add(feld_laufzeit);
frame_dvd.add(jahr);
frame_dvd.add(feld_jahr);
frame_dvd.add(fsk);
frame_dvd.add(combo_fsk);
frame_dvd.add(leer);
frame_dvd.add(ok);
frame_dvd.add(abbrechen);
frame_dvd.add(cover_auswahl);
frame_dvd.add(labelCover);
frame_dvd.setVisible(true);
VideothekMain.v.desktop.add(frame_dvd);
try {
frame_dvd.setSelected(true);
} catch(Exception e) {
}
}
}