草庐IT

java - Keylistener 不适用于 JPanel

当使用我的JPanel类中的KeyListener按下其中一个箭头键时,我正在尝试做一些事情。这是我的代码:publicclassTestPanelextendsJPanelimplementsKeyListener{publicTestPanel(){this.addKeyListener(this);this.setFocusable(true);this.requestFocusInWindow();}publicvoidkeyPressed(KeyEvente){if(e.getKeyCode()==KeyEvent.VK_RIGHT){System.out.println("

java - 如何在绘制 JPanel 后重新绘制它?

我有一个继承自JPanel的组件,我在其上绘制了一个网格。现在我有一个JComboBox,我希望用户能够在这里选择网格大小,然后按下一个按钮来更改网格(重新绘制网格)。问题是它绘制了初始网格,但是一旦用户从JComboBox中选择了网格大小并单击了按钮,就没有任何反应。我必须最小化表单,然后再次恢复它以查看更改。有什么想法吗?代码如下。组件:publicclassBoardextendsJPanel{...protectedvoidpaintComponent(Graphicsog){super.paintComponent(og);...}}}主类publicclassMainext

java - 自动聚焦于 jpanel 上的 jButton

我在JFrame上加载了一个JPanel。JPanel包含4个JButton。我想要做的是自动将焦点放在第一个jbutton上,这样我就可以使用键盘在JButton之间移动。我在jpanel的构造函数中尝试了jButton1.requestFocusInWindow();代码,但仍然无法正常工作。有什么我想念的吗?我还能做什么?编辑:工程包含3个java文件,代码如下:新JFrame.java/**Tochangethistemplate,chooseTools|Templates*andopenthetemplateintheeditor.*/packagesampleui;impo

java - Java 中的多个布局管理器

有没有办法在Java中使用超过1个布局管理器。现在我正在使用gridLayout来实现棋盘,但在它下面我想放一些其他东西但不在gridLayout中。可能是FlowLayout或其他布局。我该怎么做呢?谢谢! 最佳答案 是的,您只需要规划整个UI布局(即窗口、主面板等)例如,您需要在棋盘下方放置一些东西,我通常会在基本级别使用BorderLayout。假设我有一个名为masterPanel的JPanel,它包含我的国际象棋应用程序的所有组件。所以,代码看起来像:JPanelmasterPanel=newJPanel(newBorde

java - JScrollPane 内 JPanel 上的 JTextArea 无法正确调整大小

我想实现以下目标:+------------------Othercontainer(s)-----------------+|+------JScrollPane(vertical)-------+|||JTextField||||Box.createRigidArea(vertical)||||JTextArea||||{etc..anyotherJ-component}|||||||||||||||||||+-----------------------------------+|+-------------------------------------------------

java - 如何将 JPanel 嵌入到 JavaFX Pane 中?

如何将swingNode添加到特定的Pane?我实际上是在尝试添加一个JPanel来加载一个applet到下面的透明区域,但我不确定该怎么做。 最佳答案 SwingNode是javafxscenenode并且可以添加到任何javafxscenelayouts.将JPanel添加到Pane并将其显示在JavaFX舞台上:将JPanel添加到SwingNode将swingnode作为子节点分配给任何布局(包括Pane)。将布局设置为场景的根将场景布景并展示展示如何将其添加到Pane的一个非常简单的代码示例是(来自SwingNodeJav

java - JPanel 的 addMouseListener

今天有个问题..我的程序制作了一个8x8网格并在我单击JButton时显示坐标。但我拒绝使用JButton,我需要使用JPanel..但是我的addMouseListener不工作所以我不不知道如何解决我从4小时开始搜索的问题......packagecoordboutons;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassCoordBoutonsextendsJFrame{CoordBoutons(){super("GridLayout");setDefaultCloseOperation(

Java JPanel 两个边框,不同的颜色?

对于我的布局,我想要双边框,在我的JPanel底部,一个应该稍暗,另一个应该稍微亮一些。目前我有1个边框:JPanelpnlTop=newJPanel(newBorderLayout()){protectedvoidpaintComponent(Graphicsgrphcs){super.paintComponent(grphcs);Graphics2Dg2d=(Graphics2D)grphcs;g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON);Gradien

java - 如何将 JLabel 对齐到 JPanel 的左侧?

我想将我的JLabel左对齐。StringlText="mybook";JLabellabel=newJLabel(lText);label.setBorder(newEmptyBorder(25,0,25,500));我尝试使用EmptyBorder来做到这一点,但它没有正确对齐。我正在使用FlowLayout 最佳答案 FlowLayout默认使用CENTER对齐方式。尝试为您的JLabelJPanel容器使用LEFT对齐方式myJPanel.setLayout(newFlowLayout(FlowLayout.LEFT));

java - 判断是否在 JPanel 中找到组件的快速方法

我可以知道如何确定是否在JPanel中找到了一个组件吗?booleanisThisComponentFoundInJPanel(Componentc){Component[]components=jPanel.getComponents();for(Componentcomponent:components){if(c==component){returntrue;}}returnfalse;}使用循环效率不高。有没有更好的办法? 最佳答案 if(c.getParent()==jPanel)如果您不想要直接的父子关系(在设计良好的面