private final Dimension SCREEN_DIMENSION = Toolkit.getDefaultToolkit().getScreenSize();
@Override
public Dimension getMaximumSize() {
return new Dimension(SCREEN_DIMENSION.width / 2, SCREEN_DIMENSION.height / 2);
}
但是我尝试重写getminimumSize()
、getPreferredSize()
、getSize()
等似乎都不起作用,或者可能是我实现错误。我需要调整它的内部子组件吗?或者仅仅调整JDialog/code>就足够了?如果是,怎么做?
我创建了一个简单的GUI来说明我的注释。这是JFrame。
这是JDialog。
下面是完整的示例代码。您必须修改createPendenciesPanel方法,使其更加真实。
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.SwingUtilities;
public class JDialogTest implements Runnable {
public static void main(String[] args) {
SwingUtilities.invokeLater(new JDialogTest());
}
private JFrame frame;
@Override
public void run() {
frame = new JFrame("JDialog Test");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(createMainPanel());
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
}
private JPanel createMainPanel() {
JPanel panel = new JPanel(new BorderLayout());
panel.setBorder(BorderFactory.createEmptyBorder(
150, 100, 150, 100));
panel.setPreferredSize(new Dimension(400, 600));
JButton button = new JButton("Open JDialog");
button.addActionListener(new ButtonListener());
panel.add(button);
return panel;
}
public class ButtonListener implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
new PendenciesDialog(frame, "Pendencies Dialog");
}
}
public class PendenciesDialog extends JDialog {
private static final long serialVersionUID = 1L;
public PendenciesDialog(JFrame frame, String title) {
super(frame, true);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
setTitle(title);
add(createMainPanel(frame));
pack();
setLocationRelativeTo(frame);
setVisible(true);
}
private JPanel createMainPanel(JFrame frame) {
JPanel panel = new JPanel(new BorderLayout());
JPanel displayPanel = createDisplayPanel();
JScrollPane scrollPane = new JScrollPane(displayPanel);
panel.add(scrollPane, BorderLayout.CENTER);
Dimension d = frame.getSize();
Dimension p = displayPanel.getPreferredSize();
panel.setPreferredSize(new Dimension(p.width + 50, d.height / 2));
return panel;
}
private JPanel createDisplayPanel() {
JPanel panel = new JPanel(new GridLayout(0, 1, 10, 10));
panel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
for (int i = 0; i < 6; i++) {
panel.add(createPendenciesPanel());
}
return panel;
}
private JPanel createPendenciesPanel() {
JPanel panel = new JPanel(new FlowLayout());
panel.setBackground(Color.LIGHT_GRAY);
panel.setPreferredSize(new Dimension(100, 200));
return panel;
}
}
}
我需要限制节点的子级大小。我的父节点是一个VBox。我试图设置maxWidth,但它不起作用(wide子级不在VBox范围内) 如何将孩子的大小限制在父母的范围内?除了绑定还有别的办法吗? 预期行为:Children maxWidth自动与VBox相同(无需手动设置) 我的代码(fxml):
我正在尝试autowire一个特定大小的对象列表,但尽管搜索了所有与stackoverflow相关的问题,我还是看不到前面讨论过的类似的内容。我很惊讶这永远都不需要? 我尝试了如下所示,但我得到了错误@bean public List listMyListeners(@value(“${workflow.threads:10}”)int threads){return new ArrayList(
问题内容: 我想在JDialog中添加诸如TextField,Button等组件。 问题答案: 1)首先创建一个Jpanel 2)将组件添加到该JPanel 3)创建JDialog 4)将JPanel添加到JDialog
我有一个Jframe(美因茨), 它有一个按钮(showDialog), 当用户单击该按钮时, jdialog (Dialogz) 将显示, 那个jdialog有一个按钮 如何从该按钮关闭jdialog(在jdialog内部)? 我可以在创建对话框的实例后更改对话框的模式吗? 我需要阻止jdialog的所有者 我试着。。。 非常感谢你的任何帮助
特性: 可修改CSS来统一定制UI; 通过参数设置标题,高度,宽度,窗口显示的HTML内容; 一个页面同时只能显示一个窗口; 窗口显示需要指定一个页面上的对象做为窗口显示做置定位,这样窗口会出现在哪个东西的下面,就像下拉列表一样. 不能拖动(我们不需要这样的功能); 可以点击窗口之外的任意区域来关闭窗口,或是点右上角的关闭按钮. 演示地址: http://huacnlee.github.com/jdialog/
问题内容: open_basedir限制了目录树中PHP可以打开的文件。 我在Web根目录之外存储了几个类库和配置文件。这样,Web服务器不会使它们公开访问。但是,当我尝试从应用程序中包含它们时,出现如下所示的open_basedir限制错误: 警告:realpath()[function.realpath]:open_basedir限制有效。文件(/var/www/vhosts/domain.t