Tag: jpanel

如何在同一位置用另一个JPanel替换一个JPanel?

我有一个大约四帧的JFrame。 在给定动作之后,我想在同一位置将一个面板替换为另一个面板。 我切换它们的方法看起来像这样( this对象是一个扩展JFrame的类): public void switchPanel(){ mainPanel.remove(introPanel); mainPanel.add(questionPanel); this.repaint(); } 窗口的原始创建如下所示: mainPanel.add(titlePanel); mainPanel.add(sidePanel); mainPanel.add(introPanel);

将其他JPanel添加到JPanel

相当基本的问题在这里。 基本上我有这样的代码: public SuperPanel() { setLayout(new BorderLayout()); add(panel1(), BorderLayout.NORTH); add(panel2(), BorderLayout.CENTER); add(panel3(), BorderLayout.SOUTH); } 这一切都运作良好。 问题是我还有另一部分要添加到中心。 只是使用add(newPanel(), BorderLayout.CENTER)显然不起作用。 但你可以在JPanel添加JPanel ,对吗? 所以我做了以下改动: public SuperPanel() { setLayout(new BorderLayout()); add(panel1(), BorderLayout.NORTH); add(supersweetpanel(), BorderLayout.CENTER); add(panel3(), BorderLayout.SOUTH); } 使用supersweetpanel() : public JPanel supersweetpanel() { JPanel sswp = new JPanel(); setLayout(new BorderLayout()); add(panel2(), BorderLayout.NORTH); return sswp; } 现在它覆盖了panel1 ! 如果我将它设置为其他任何东西( CENTER […]

SetVisible(false)更改我的Panel中组件的布局

当我将其中一个子面板设置为不可见时,如何使主面板中的子面板保持原样? 我看起来像: [ (Panel1) (Panel2) (Panel3) (Panel4) ] 当我执行panel3.setVisible(false)它看起来像: [ (Panel1) (Panel2) (Panel4) ] 我希望它看起来像: [ (Panel1) (Panel2) (Panel4) ] 我正在使用GridBagLayout,我的mainPanel声明如下所示: final JPanel panel = new JPanel(new GridBagLayout()); GridBagConstraints c = new GridBagConstraints(); 我添加了一个新的面板,如: final JTextField valueTextField = new JTextField(); valueTextField.setPreferredSize(new Dimension(80, 25)); valueTextField.setName(“Value”); c.gridx =0; panel.add(valueTextField, c); 如果需要,我会提供更多代码,我不关心我使用哪种布局,只要它能得到我想要的东西。

为所有组件Java设置相同的字体

我想为JPanel所有组件设置一个特定的字体,但我更喜欢这个问题仍然更加通用,而不仅限于JPanel。 如何将字体设置为容器中的组件列表(JFrame或JPanel)?

如何将MouseListener添加到框架

我想添加一个mouselistener到mt JFrame框架但是当我做frame.addMouseListener(this)时我得到一个错误,我不能在静态方法中使用它 我正在创建一个应用程序来检测鼠标点击,然后在int点击中显示它 码 import java.awt.BorderLayout; import java.awt.Color; import java.awt.FlowLayout; import java.awt.Font; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import javax.swing.BorderFactory; import javax.swing.JFrame; import javax.swing.JTextField; public class numberOfClicks implements MouseListener{ static int clicks = 0; @Override public void mouseClicked(MouseEvent e) { clicks++; } static JTextField text = new JTextField(); static String string = clicks+” Clicks”; static JFrame frame […]

如何在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 […]

有没有办法强制GridLayout留下空单元格?

我有一个JTabbedPane,其中2个JPanels设置为GridLayout(13,11)。 第一个JPanel有足够的单元格填充它离开空单元格。 第二个JPanel填充的单元格明显减少,这导致每个按钮被拉伸以填满整行。 有没有办法让GridLayout尊重空单元格,所以两个JPanels中的按钮大小相同?

Java将ImageIcon添加到JLabel

我正在尝试使用Java制作一个非常基本的游戏,但我在JFrame上显示图像时遇到问题。 它曾经为我工作过,现在不是,我看不出我做错了什么。 我已经尝试打印当前的工作目录并更改我的图像匹配的位置。 问题可能不是获取图像,因为我的(文件查找器或文件阅读器或类似的东西)可以毫无问题地找到它,但我无法正确地将它( ImageIcon )添加到JLabel ,或者添加到JFrame 。 这是我的代码…… JFrame frame = new JFrame(“no image”); ImageIcon image = new ImageIcon(“C:/Documents and Settings/user/Desktop/hi/xD/JavaApplication2/image.png”); JLabel imagelabel = new JLabel(image); frame.add(imagelabel); JFrame已设置为setVisible(true)和pack() 。 有人可以帮我理解出了什么问题。

将组件放置在任意(x,y)坐标处

我想在JPanel中的随机位置(x,y)放置一些按钮,这些布局类很烦人。 这在Swing中甚至可能吗?

尝试使用JPanel绘制线条

我正在尝试使用JPanel绘制线条,而且我已经打了一些墙。 我可以将两面朝下,但一旦从x线中减去它就会出错。 package GUIstuff; import java.awt.Graphics; import javax.swing.JPanel; public class DrawPanel extends JPanel{ public void paintComponent (Graphics g){ super.paintComponent(g); int width = getWidth(); int height = getHeight(); int drawCounter = 0; // counters for all the while statements int drawCounter2 = 0; int drawCounter3 = 0; int drawCounter4 = 0; int x1 = 0; // […]