Hallo,
mein Problem besteht darin, dass die JComboBox beim aufklappen nicht angezeigt wird, bzw nur ganz kurz.
Habe ich etwas grundlegendes falsch gemacht?
Um einen Tipp wäre ich sehr dankbar.
Gruß Marc
mein Problem besteht darin, dass die JComboBox beim aufklappen nicht angezeigt wird, bzw nur ganz kurz.
Habe ich etwas grundlegendes falsch gemacht?
Um einen Tipp wäre ich sehr dankbar.
Code:
package de.kohlbau.fibus.gui;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.imageio.ImageIO;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.JWindow;
public class Screen extends JWindow {
public Screen(Dimension windowDim) {
this.setSize(windowDim);
Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();
this.setLocation((dim.width / 2) - (this.getWidth() / 2), (dim.height / 2) - (this.getHeight() / 2));
this.getContentPane().setLayout(null);
JButton cancel = new JButton("X");
cancel.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
cancel.setBounds(5, 5, 50, 50);
this.getContentPane().add(cancel);
JPanel loginPanel = new JPanel();
int width = 200;
loginPanel.setBounds(windowDim.width-(width+10), 10, width, 100);
loginPanel.setLayout(new GridLayout(4,2, 5, 10) );
loginPanel.setOpaque(false);
loginPanel.add(new JLabel("User:"));
loginPanel.add(new JTextField());
loginPanel.add(new JLabel("Password:"));
loginPanel.add(new JTextField());
loginPanel.add(new JLabel("Datenbank:"));
loginPanel.add(new JComboBox(new String[] {"default","Marc's"}));
loginPanel.add(new JButton("Config"));
loginPanel.add(new JButton("Login"));
JPanel pan = new BackgroundPanel(windowDim);
this.getContentPane().add(loginPanel);
this.getContentPane().add(pan);
this.setVisible(true);
}
class BackgroundPanel extends JPanel {
private BufferedImage image;
BackgroundPanel(Dimension dim) {
try {
this.image = ImageIO.read(this.getClass().getResource("/de/kohlbau/fibus/ressource/login.png"));
this.setDoubleBuffered(true);
this.setBounds(0,0, dim.width, dim.height);
this.setVisible(true);
} catch (IOException ex) {
Logger.getLogger(Screen.class.getName()).log(Level.SEVERE, null, ex);
}
}
@Override
public void paintComponent(Graphics g) {
g.drawImage(this.image, 0, 0, this);
}
}
public static void main(String... args) {
Screen screen = new Screen(new Dimension(450, 300));
}
}
Gruß Marc