gpt4 book ai didi

java - 尝试用Java弹出一个面板

转载 作者:行者123 更新时间:2023-11-30 07:43:11 24 4
gpt4 key购买 nike

好吧,我现在不想使用其他第 3 方库。尝试制作自己的东西。

你们知道 Windows 中的日期控制是怎样的吗?看起来像一个纯文本框,旁边有一个按钮,单击按钮后,会打开一个新的较小窗口/日历来选择日期。该窗口不会推开其他控件...它就像在所有控件之上。

我正在尝试在 Java 中做同样的事情。我只能走到这一步了......

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

class PopupPanelDemo{
public static void main(String ags[]){
JFrame f = new JFrame();
JLabel l = new JLabel("Date");
JTextField t = new JTextField(10);
JPanel p = new JPanel();
JButton b = new JButton("Show");

p.setBorder(BorderFactory.createLineBorder(Color.black,1));
p.setBackground(Color.red);
p.setVisible(false);

f.setLayout(new FlowLayout());
f.add(l);
f.add(t);
f.add(b);
f.add(p);

f.setSize(400,400);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLocationRelativeTo(null);
f.setVisible(true);

b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
p.setSize(t.getWidth(), t.getHeight());
p.setLocation(t.getLocation().x, t.getLocation().y + t.getHeight());
p.setVisible(true);
}
});
}
}

我还没有让它正常工作。仅当我单击按钮两次时,JPanel 才会正确显示,正如代码中所预期的那样。

java中有类似zindex之类的HTML吗?

这是正确的路线还是我应该检查其他一些控制?

PS。 JPanel 将被我的日历面板取代。我只是在这里添加了必要的内容。

我使用的是 Window 8.1 和 Java 1.8.0_45。

最佳答案

我建议使用 PopupFactory (就像 swing 那样显示工具提示和菜单):

import java.awt.*;
import java.awt.event.*;

import javax.swing.*;

class PopupPanelDemo {
public static void main(String ags[]) {
JFrame f = new JFrame();
JLabel l = new JLabel("Date");
JTextField t = new JTextField(10);
JPanel p = new JPanel();
JButton b = new JButton("Show");

p.setBorder(BorderFactory.createLineBorder(Color.black, 1));
p.setBackground(Color.red);
p.add(new JLabel("Test"));

f.setLayout(new FlowLayout());
f.add(l);
f.add(t);
f.add(b);

f.setSize(400, 400);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setLocationRelativeTo(null);
f.setVisible(true);

b.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {
PopupFactory pf = PopupFactory.getSharedInstance();
p.setSize(t.getWidth(), t.getHeight());
p.setPreferredSize(new Dimension(t.getWidth(), t.getHeight()));
Point l = t.getLocationOnScreen();
Popup popup = pf.getPopup(f, p, l.x, l.y + t.getHeight());
popup.show();
}
});
}
}

关于java - 尝试用Java弹出一个面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34368048/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com