草庐IT

java - 使 JPanel 手动调整大小

我有一个JFrame和BorderLayout作为布局管理器。在南边,我有一个JPanel,我希望这个JPanel的大小可以由用户调整,即用户可以点击边框并将其向上拖动以使其变大。你有什么办法知道我可以做到这一点吗? 最佳答案 为了使框架中的面板可以单独调整大小,您需要将它们添加到JSplitPane上.不要将它放在框架的南部,而是将JSplitPane放在中心。拆分Pane将使拆分中的底部面板看起来像在南方,而拆分中的顶部面板将位于框架的中心。确保使用setOrientation(JSplitPane.VERTICAL_SPLIT

java - 使用 JPanel 创建棋盘

这个问题在这里已经有了答案:Makingarobust,resizableSwingChessGUI[closed](2个答案)关闭8年前。我在JPanel中有一个简单的国际象棋棋盘,使用GridLayout(8,8)作为布局管理器。我正在尝试为字段的列名和行号添加面板。现在我创建了另一个面板,将BorderLayout作为布局管理器,在这个面板中,我将板添加到BorderLayout.CENTER中。在板本身旁边,我在BorderLayout.SOUTH中添加了一个带有GridLayout(0,8)的面板和一个带有GridLayout(8,0)在BorderLayout.WEST中。

java - JPanel removeAll 没有去掉以前的组件

我有一个swing应用程序,我在其中的JPanel中显示图像。如果应用程序无法生成图像,我想从JPanel中删除之前的图像,并将其替换为JTextField和消息。我可以添加文本字段,但它是在前面的内容之上绘制的,它本身是JPanel的子类。这是我拥有的:privatevoiddisplayMessage(Stringmessage){JTextFieldtf=newJTextField(message);cdPanel.removeAll();cdPanel.add(tf,BorderLayout.NORTH);//triedlotsofvariations,inc.nolayout

Java - 带有边距的 JPanel 和内部的 JTextArea

我想创建这样的东西:主面板有其边距(x),而TextArea位于该面板的中心,几乎填满了面板。底部是另一个具有自定义大小(高度y)的面板,可以使用一些快捷方式切换可见和不可见。底部面板具有FlowLayout和少量元素。问题是我不知道该怎么做。BoxLayout没有边距。我尝试使用GridBagLayout,但我没有用,或者我对它的理解还不够:(我也尝试过设置JTextArea边距textMain.setMargin(newInsets(insetTop,insetLeft,insetBottom,insetRight));但是当文字很多的时候,top和bottommargin就消失了

java - 在 JPanel 上的任何位置检测鼠标进入/退出事件

基本上有一个JPanel,我想知道鼠标何时进入JPanel区域并退出JPanel区域。所以我添加了一个鼠标监听器,但是如果JPanel上有组件并且鼠标经过其中一个组件,它会被检测为JPanel上的退出,即使组件在JPanel上也是如此。我想知道是否有人知道有什么方法可以解决这个问题而无需执行诸如向JPanel上的所有组件添加监听器之类的操作? 最佳答案 这个问题有一个非常简单可行的解决方案:publicclassMyJPanelimplementsMouseListener{publicvoidmouseExited(MouseEv

java - CardLayout 与手动添加/删除 JPanel 有什么特别之处?

在StackOverflow上已经有很多次用户提出这样的问题......IhaveamainJPanelthatcontainsachildJPanel.Whentheuserclicksabutton,thechildJPanelshouldchangetoadifferentJPanel.HowcanIachievethis.很多时候,用户实际上已经尝试实现这个问题,但无法让它工作。每当我回答这个问题时,我都会告诉他们做这样的事情(简单地说)......JPanelmyFrame=newJPanel();myFrame.remove(oldPanel);myFrame.add(ne

java - 我怎么知道我是否在事件派发线程上?

1.考虑我的代码在我拥有的JPanel的某行上,我是否自动在EDT上?2.对于不属于GUI、JPanels或其他View类的所有其他类,简单逻辑类,同样的问题。3.如果我有JPanel,我在其中播放音乐,音乐应该在事件调度线程上运行还是在其他非EDT线程上运行(为了不阻塞GUI,尽管我没有任何感觉从EDT运行它有问题吗?注意:我想要一个通用规则如何在不使用SwingUtilities.isEventDispatchThread()的情况下知道它谢谢 最佳答案 没有。没有。后台线程。如果在EDT之外运行的代码调用GUI类中定义的方法,

java - 将 ButtonGroup 添加到 JPanel

JPanel.add(ButtonGroup);不工作。我必须将它添加到JPanel,因为我正在使用选项卡。这真是令人沮丧。我还没有找到办法 最佳答案 由于ButtonGroup不是组件,因此您不能将ButtonGroup添加到JPanel。而是将按钮添加到JPanel,例如:JPaneljPanel=newJPanel();ButtonGroupgroup=newButtonGroup();btn1=newJRadioButton("btn1");btn1.setSelected(true);btn2=newJRadioButto

java - 画笔型 GUI 中的 paintComponent() 与 paint() 和 JPanel 与 Canvas

我从this得到了一些有趣的想法和批评,this和this发布(有关GUI的代码,请参阅上一篇文章)。尽管如此,我仍然对某些事情感到困惑。主要是,显示用户介绍图形的成本最低的方法是什么?更具体地说,我通过在MouseDragged()方法中创建此类的对象,使用了JPanel类中的paintComponent()方法连同paintComponent(getGraphics())方法(AuxClass2和AuxClass1相应地)。显然,使用getGraphics()和paintComponent()而不是repaint()是个坏主意,我怀疑与内存有关利用。每次用户拖动鼠标时调用AuxCl

java - 将图像设置为 JPanel 背景的最简单方法

如何在不创建新类或方法的情况下将背景图像添加到我的JPanel,而只需将它与JPanel的其余属性一起插入?我正在尝试使用图像设置JPanel的背景,但是,我发现的每个示例似乎都建议使用自己的类扩展面板。我一直在寻找一种方法来简单地添加图像,而无需创建一个全新的类,并且使用相同的方法(试图使事情井井有条和简单)。这是设置我的JPanel的方法示例:publicstaticJPaneldrawGamePanel(){//CreategamepanelandattributesJPanelgamePanel=newJPanel();Imagebackground=Toolkit.getDe