这个问题在这里已经有了答案:Makingarobust,resizableSwingChessGUI[closed](2个答案)关闭8年前。我在JPanel中有一个简单的国际象棋棋盘,使用GridLayout(8,8)作为布局管理器。我正在尝试为字段的列名和行号添加面板。现在我创建了另一个面板,将BorderLayout作为布局管理器,在这个面板中,我将板添加到BorderLayout.CENTER中。在板本身旁边,我在BorderLayout.SOUTH中添加了一个带有GridLayout(0,8)的面板和一个带有GridLayout(8,0)在BorderLayout.WEST中。
我有一个swing应用程序,我在其中的JPanel中显示图像。如果应用程序无法生成图像,我想从JPanel中删除之前的图像,并将其替换为JTextField和消息。我可以添加文本字段,但它是在前面的内容之上绘制的,它本身是JPanel的子类。这是我拥有的:privatevoiddisplayMessage(Stringmessage){JTextFieldtf=newJTextField(message);cdPanel.removeAll();cdPanel.add(tf,BorderLayout.NORTH);//triedlotsofvariations,inc.nolayout
我想创建这样的东西:主面板有其边距(x),而TextArea位于该面板的中心,几乎填满了面板。底部是另一个具有自定义大小(高度y)的面板,可以使用一些快捷方式切换可见和不可见。底部面板具有FlowLayout和少量元素。问题是我不知道该怎么做。BoxLayout没有边距。我尝试使用GridBagLayout,但我没有用,或者我对它的理解还不够:(我也尝试过设置JTextArea边距textMain.setMargin(newInsets(insetTop,insetLeft,insetBottom,insetRight));但是当文字很多的时候,top和bottommargin就消失了
基本上有一个JPanel,我想知道鼠标何时进入JPanel区域并退出JPanel区域。所以我添加了一个鼠标监听器,但是如果JPanel上有组件并且鼠标经过其中一个组件,它会被检测为JPanel上的退出,即使组件在JPanel上也是如此。我想知道是否有人知道有什么方法可以解决这个问题而无需执行诸如向JPanel上的所有组件添加监听器之类的操作? 最佳答案 这个问题有一个非常简单可行的解决方案:publicclassMyJPanelimplementsMouseListener{publicvoidmouseExited(MouseEv
在StackOverflow上已经有很多次用户提出这样的问题......IhaveamainJPanelthatcontainsachildJPanel.Whentheuserclicksabutton,thechildJPanelshouldchangetoadifferentJPanel.HowcanIachievethis.很多时候,用户实际上已经尝试实现这个问题,但无法让它工作。每当我回答这个问题时,我都会告诉他们做这样的事情(简单地说)......JPanelmyFrame=newJPanel();myFrame.remove(oldPanel);myFrame.add(ne
JPanel.add(ButtonGroup);不工作。我必须将它添加到JPanel,因为我正在使用选项卡。这真是令人沮丧。我还没有找到办法 最佳答案 由于ButtonGroup不是组件,因此您不能将ButtonGroup添加到JPanel。而是将按钮添加到JPanel,例如:JPaneljPanel=newJPanel();ButtonGroupgroup=newButtonGroup();btn1=newJRadioButton("btn1");btn1.setSelected(true);btn2=newJRadioButto
我从this得到了一些有趣的想法和批评,this和this发布(有关GUI的代码,请参阅上一篇文章)。尽管如此,我仍然对某些事情感到困惑。主要是,显示用户介绍图形的成本最低的方法是什么?更具体地说,我通过在MouseDragged()方法中创建此类的对象,使用了JPanel类中的paintComponent()方法连同paintComponent(getGraphics())方法(AuxClass2和AuxClass1相应地)。显然,使用getGraphics()和paintComponent()而不是repaint()是个坏主意,我怀疑与内存有关利用。每次用户拖动鼠标时调用AuxCl
如何在不创建新类或方法的情况下将背景图像添加到我的JPanel,而只需将它与JPanel的其余属性一起插入?我正在尝试使用图像设置JPanel的背景,但是,我发现的每个示例似乎都建议使用自己的类扩展面板。我一直在寻找一种方法来简单地添加图像,而无需创建一个全新的类,并且使用相同的方法(试图使事情井井有条和简单)。这是设置我的JPanel的方法示例:publicstaticJPaneldrawGamePanel(){//CreategamepanelandattributesJPanelgamePanel=newJPanel();Imagebackground=Toolkit.getDe
我正在尝试制作游戏引擎。我制作了Game类,但错误出在KeyBoard类中。这里我留下一些代码。类::游戏packagetransfer2pc.co.cc.game.tileengine;importjava.awt.Graphics;importjava.util.HashMap;importjavax.swing.JPanel;importtransfer2pc.co.cc.game.tileengine.input.KeyBoard;publicabstractclassGameextendsJPanelimplementsRunnable{/****/privatestatic
我有一个从JPanel派生的面板。我有一个从JLabel派生的自定义控件。我正在尝试将这个自定义JLabel放在我的面板上。我知道的唯一可行的方法是使用空布局(setLayout(null)),然后计算自定义JLabel的setLocation()指向正确的位置。自定义JLabel在此应用程序中从一个面板物理移动到此面板,我相信之前在setLocation中设置的位置会影响事物。但是,当我将其设置为(0,0)时,组件会上升到左上角。BorderLayout不起作用,因为当仅提供1个组件并将其放入BorderLayout.CENTER时,中心部分会扩展以填充所有空间。我从另一个站点剪切和