Hi leutz.
Ich habe eine etwas ausgefallene Frage.
Ich habe ein JFrame und sperre dieses mit hilfe eines GlassPanes.
soweit so gut.
Jetzt sind aber auf diesem Frame Textfelder die man bearbeiten können muss
(Schlüsselfelder mit denen Abfragen auf eine Datenbank realisiert werden)
Jetzt die Frage.
Kann ich eine art "Loch" in das GlassPane machen damit ich trozdem in genau diese Felder etwas eintragen kann
Bis jetzt rufe ich ein PoPUp auf in dem der User die Daten eintragen kann sobald er auf das gesperrte GlassPane klickt.
Hier bisschen lauffähiger code falls jemand eine Idee hat wie man das bewerkstelligen könnte.
Ich hoffe das geht irgendwie.
Bitte schaut es euch mal an.
Gruss
MScalli
Ich habe eine etwas ausgefallene Frage.
Ich habe ein JFrame und sperre dieses mit hilfe eines GlassPanes.
soweit so gut.
Jetzt sind aber auf diesem Frame Textfelder die man bearbeiten können muss
(Schlüsselfelder mit denen Abfragen auf eine Datenbank realisiert werden)
Jetzt die Frage.
Kann ich eine art "Loch" in das GlassPane machen damit ich trozdem in genau diese Felder etwas eintragen kann
Bis jetzt rufe ich ein PoPUp auf in dem der User die Daten eintragen kann sobald er auf das gesperrte GlassPane klickt.
Hier bisschen lauffähiger code falls jemand eine Idee hat wie man das bewerkstelligen könnte.
Code:
import java.awt.Component;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
public class LockFrame extends JFrame{
LockFrame(){
this.setSize(400, 400);
this.setLayout(null);
JTextField tf = new JTextField();
tf.setBounds(50, 50, 100, 25);
this.add(tf);
lockFrame();
this.setVisible(true);
}
public static void main(String[] args) {
new LockFrame();
}
protected void lockFrame(){
final Component hardGlass = this.getGlassPane();
hardGlass.setVisible(true);
final Runnable unlocker = new Runnable(){
public void run(){
String key = JOptionPane.showInputDialog(hardGlass, "Eingabe", "Bitte Schlüssel eingeben",
JOptionPane.INFORMATION_MESSAGE);
if ("test".equals(key)){
// Daten holen und Felder füllen
hardGlass.setVisible(false);
}
else if (key != null){
JOptionPane.showMessageDialog(hardGlass, "Datensatz nicht vorhanden", "Achtung",
JOptionPane.WARNING_MESSAGE);
}
}
};
hardGlass.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e){
unlocker.run();
}
});
hardGlass.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e){
unlocker.run();
}
});
}
}
Ich hoffe das geht irgendwie.
Bitte schaut es euch mal an.
Gruss
MScalli