Tag: 布局管理器

我应该使用哪种java swing布局

我需要创建这个框架: 我应该使用哪种布局? 我正在考虑框或网格布局,但右边的菜单将是一个问题。

如何使用Java Swing布局管理器来制作这个GUI?

我试图弄清楚应该在JFrame上使用哪些布局来完成这种布局。 我正在尝试编写GUI而不是使用可视化GUI制作工具。 到目前为止,我只能让它看起来像这样: 这是上面GUI的源代码: http : //pastebin.com/s06pareG /** * Initialize the contents of the frame. */ private void initialize() { frame = new JFrame(); frame.setBounds(100, 100, 450, 300); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //frame.getContentPane().setLayout(new FlowLayout(FlowLayout.CENTER, 5, 5)); JPanel upPanel = new JPanel(); upPanel.setLayout(new GridLayout(2,3)); JLabel data = new JLabel(“Data Source Name:”); upPanel.add(data); JTextField dataText = new JTextField(); upPanel.add(dataText); JLabel […]

如何在JFrame中排列多个面板

我正在尝试制作一个简单的计算器来练习图形(我是一个完整的GUI菜鸟)。 我在使用Polyashenkos校准器和文本区域以及文本区域和按钮之间的空间后有不必要的空间时遇到一些问题。 另外,我如何保持这种布局,但消除空间,并使底部3按钮更小。 关于我正在做什么或如何做得更好的任何提示将非常感激。 谢谢。 import javax.swing.*; import java.awt.*; public class calculator { public static void main(String[] args) { // creates the JFrame(a window with decorations) JFrame frame = new JFrame(“Calculator”); // stops the program when window is closed frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setSize(377, 350); // the main panel of the JFrame, // remembet you cant add content […]

以随机顺序显示CardLayout卡?

我想在CardLayout中随机下载显示卡片或屏幕的顺序。 我需要有关如何实现这一目标的指导。 我应该使用什么策略? 我尝试使用下面的代码,但它是按固定顺序。 我希望能够选择我喜欢的订单。 编辑! 对不起,按随机顺序我并不是说洗牌。 但是,很高兴知道。 我希望程序的用户能够输入一些输入。 根据输入的值,显示特定的屏幕/卡。 import java.awt.*; import javax.swing.*; import java.awt.event.*; public class CardLayoutExample extends JFrame { private int currentCard = 1; private JPanel cardPanel; private CardLayout cl; public CardLayoutExample() { setTitle(“Card Layout Example”); setSize(300, 150); cardPanel = new JPanel(); cl = new CardLayout(); cardPanel.setLayout(cl); JPanel p1 = new JPanel(); […]

布局管理器在java中设置此特定布局

我有这个布局,我需要为一个赋值编程,这是我第一次在GUI中使用布局管理器,所以我在设置匹配时遇到问题。 我需要你的帮助 我有两个选项卡标记为帐户创建和帐户转移(这些都没问题)我需要的是将JLabel(帐户ID)和第一个文本字段放在一行中,然后是下一行中的JLabel(Amount)和文本字段第一。 在那之下需要以JButton为中心(创建一个帐户)。 最后,JTextArea(无帐户)需要位于与标签,文本字段和按钮分开的空白区域中的右侧列中。 这是我开始使用的代码: public CreatePanel(Vector accountList, TransferPanel transferPanel) { this.accountList = accountList; this.transferPanel = transferPanel; JLabel l1 = new JLabel(“Account ID”); JTextField t1 = new JTextField(); JLabel l2 = new JLabel(“Amount”); JTextField t2 = new JTextField(); JButton b1 = new JButton(“Create an Account”); JTextArea a1 = new JTextArea(“No Account”); JPanel panel1 = […]

从顶部到底部堆叠摆动元件

考虑下图: 我需要开发一个像这样的swing GUI。 我简单地将它们命名为jLabel,但其中有一些图像和jLabel。 可见的默认awt背景是JPanel,每个可见的红色背景是一个serperate JPanel。 现在我需要它们如上图所示堆叠。 我尝试了一些LayoutManagers,但它仍无法正常工作。 这里重要的一点是红色div的数量不是恒定的。 如果只有一个红色的div,那么它必须显示在顶部,而不是在中心。 据我所知GridBagLayout应该工作,但它中心可用的单一红色jpanel。 所有布局管理器都将它们居中,但不是从上到下堆叠它们。

为JPanel提供基于百分比的宽度

什么是最简单的方法来使JPanel占据其父容器的固定百分比,按宽度? 当其父容器的宽度发生变化时,它的宽度应该更新。 我尝试使用Box.createHorizontalStrut() ,但是当JPanel的父容器的宽度发生变化时,它不会更新。

Java setBounds不能与JPanel一起使用

我正在java中做一个小Gui。 我正在使用setBounds方法在我的JFrame上设置按钮等的位置,但问题是,当我使用它与JPanel按钮在JFrame上不可见,并且没有JPanel它相当好,看到这两个代码,请帮助我作为我是初学者,面对这些愚蠢的问题。 这个工作正常 JFrame jframe = new JFrame(“Working Fine”); jframe.setLayout(null); JButton jbutton = new JButton(“Position Test”); jbutton.setBounds(0, 0, 100, 100); jframe.add(jbutton); jframe.setSize(300,300); jframe.setVisible(true); 当我向Jpanel添加Button时,相同的代码然后它不起作用,所以什么是错的,请指导我 JFrame jframe = new JFrame(“causing problem “); jframe.setSize(300,300); JPanel p = new JPanel(); jframe.setLayout(null); JButton jbutton = new JButton(“Position Test”); jbutton.setBounds(0, 0, 100, 100); jframe.add(p); p.add(jbutton); p.setVisible(true); //jframe.add(jbutton); jframe.setVisible(true); 请帮我解决这个小问题

将多个jPanel添加到jFrame

我想并排添加两个jPanel到JFrame。 两个框是jpanels,外框是jframe 我有这些代码行。 我有一个名为seatinPanel的类,它扩展了JPanel,在这个类中我有一个构造函数和一个名为utilityButtons的方法,它返回一个JPanel对象。 我希望utilityButtons JPanel在右侧。 我这里的代码只在运行时显示utillityButtons JPanel。 public guiCreator() { setTitle(“Passenger Seats”); //setSize(500, 600); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); Container contentPane = getContentPane(); seatingPanel seatingPanel1 = new seatingPanel();//need to declare it here separately so we can add the utilityButtons contentPane.add(seatingPanel1); //adding the seats contentPane.add(seatingPanel1.utilityButtons());//adding the utility buttons pack();//Causes this Window to be sized to fit the preferred size […]

java BoxLayout面板的对齐方式

我浏览过,并没有找到专门针对我的情况定制的解决方案。 我有一个面板,我在一个对话框中显示: //create dialog panel JPanel panel = new JPanel(); panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); panel.add(headerPanel); panel.add(type1Panel); panel.add(type2Panel); panel.add(type3Panel); panel.add(type4Panel); panel.add(type5Panel); panel.add(type6Panel); int result = JOptionPane.showConfirmDialog(null, panel, “Please enter values.”, JOptionPane.OK_CANCEL_OPTION); 最后两个面板的大小,类型5和类型6,大小相同,所以它们看起来很好。 但是,标题和前4个面板的大小不同,我希望它们全部左对齐。 到目前为止,我还没有找到一个很好的解决方案,如何解决这个问题。 问题是,我怎么能保持对齐前5个面板,而不是最后2个? 如果不是,我怎么能将它们全部对齐? setalignmentx()不适用于面板。 我已经尝试过使用GridLayout,但是gui主窗口的宽度相当大,并且不适合屏幕,因此BoxLayout沿Y轴。感谢任何帮助或建议。