Hallo!
Ich hab ein simples Frame mit einem Textfield. Rechts vom Textfield soll durch ein Popup ein Label angezeigt werden(so wie ein Tooltip). Dieser ist aber leider nicht "verbunden" mit dem frame.
Das heißt wenn ich das Frame verschiebe, so bleibt das popup-Label wo es ist.
Sobald das popup-Label komplett inerhalb des Frames liegt, wird es mitverschoben.
Kan mir da einer helfen?
Hier der code:
Ich hab ein simples Frame mit einem Textfield. Rechts vom Textfield soll durch ein Popup ein Label angezeigt werden(so wie ein Tooltip). Dieser ist aber leider nicht "verbunden" mit dem frame.
Das heißt wenn ich das Frame verschiebe, so bleibt das popup-Label wo es ist.
Sobald das popup-Label komplett inerhalb des Frames liegt, wird es mitverschoben.
Kan mir da einer helfen?
Hier der code:
Java:
import java.awt.Color;
import java.awt.FlowLayout;
import javax.swing.BorderFactory;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.Popup;
import javax.swing.PopupFactory;
import javax.swing.UIManager;
public class Beispiel5
{
public Beispiel5()
{
try
{
UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
}
catch (Exception e)
{
}
JFrame frame = new JFrame("Beispiel 5");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 300);
JPanel panel = new JPanel();
panel.setLayout(new FlowLayout());
JLabel label = new JLabel("Datum");
JTextField field = new JTextField(30);
PopupFactory factory = PopupFactory.getSharedInstance();
panel.add(label);
panel.add(field);
frame.add(panel);
frame.setSize(350, 250);
frame.setVisible(true);
int x = field.getLocationOnScreen().x + field.getPreferredSize().width - 2;
int y = field.getLocationOnScreen().y - field.getPreferredSize().height + 2;
JPanel errorPanel = new JPanel();
JLabel errorLabel = new JLabel("Falsches Datum");
errorPanel.setBorder(BorderFactory.createLineBorder(Color.black));
errorPanel.add(errorLabel);
Popup popup = factory.getPopup(frame, errorPanel, x, y);
popup.show();
}
public static void main(String[] args)
{
Beispiel5 beispiel = new Beispiel5();
}
}