草庐IT

java - 如何插入 GridbagLayout 不在 JPanel 的中心放置组件

问题在于组件的居中布局,GridBagLayout始终“位于”JPanel的中心,所以我不关心它将如何在内部布局组件,我的问题是这些组件将在面板上开始布局的位置。我试过:panel.setAlignmentX(JPanel.LEFT_ALIGNMENT);但这并没有帮助。有什么想法吗? 最佳答案 您需要添加至少一个组件来填充水平空间。如果你没有这样的组件,你可以试试这个:GridBagConstraintsnoFill=newGridBagConstraints();noFill.anchor=GridBagConstraints.

java - 将 JPanel 图形导出为 .png 或 .gif 或 .jpg

我正在尝试使用Java开发某种绘画。我有一个位于JPanel内部的JComponent。我已经可以在该JComponent中绘制线条和矩形。现在,我如何将这些绘图导出为图像(png、gif、jpg)?我试过这个:BufferedImageb=newBufferedImage(1700,1100,BufferedImage.TYPE_INT_RGB);this.print(getGraphics());try{ImageIO.write(b,"png",newFile("test.png"));}catch(Exceptione){}但这只会创建一个全黑的.png文件。求助!!!已解决!

java - 将 JMenuBar 添加到 JPanel?

我有一个JMenuBar和一个JPanel。我想将JMenuBar添加到JPanel。我该怎么做? 最佳答案 您可以使用BorderLayout为您的JPanel并将JMenuBar放入面板的NORTH区域JPanelp=newJPanel();p.setLayout(newBorderLayout());p.add(menubar,BorderLayout.NORTH);JMenuBar是一个JComponent,可以像任何其他JComponent一样添加到Container。 关于j

Java 获取 JPanel 组件

我有一个充满JTextFields的JPanel...for(inti=0;i以后如何在该JPanel中获取JTextFields?就像我想要他们的值(value)一样TextField.getText();谢谢 最佳答案 Java中的每个JPanel也是一个AWT容器。因此,您应该能够使用getComponents获取面板中包含的组件数组,遍历它们,检查它们的类型(以确保您没有获得其他控件),并根据需要对它们执行任何操作。但是,这通常是糟糕的设计。如果您知道您将需要访问特定的组件,那么最好维护一个包含这些文本字段的数组并传递它,即

java - 使 JLabel 在 JPanel 上居中

我正在使用NetBeansGUI构建器来处理我的布局(我对LayoutManagers很糟糕)并试图放置一个简单的JLabel,以便它始终(水平)居中于其父JPanel内。理想情况下,即使调整了JPanel的大小,这也会保持正确,但如果这是一个疯狂的编码量,而不是在首次创建JPanel时仅居中就足够了。我自己尝试处理布局已经够糟糕了,但是由于NetBeansGUIBuilder自动生成不可变代码,我不可能弄清楚如何进行这种居中,而且我无法在网上找到任何东西来帮助我。感谢任何能引导我朝着正确方向前进的人! 最佳答案 这里有四种让组件居

java - 滚动 JPanel

我想要一个具有大小和定义位置的JPanel。在JPanel内部,我水平插入了一定数量的元素(按钮)。因为我的JPanel有定义的宽度,所以如果我添加很多按钮,我将看不到它。在这种情况下,我需要此JPanel的滚动条。但是这个JPanel必须是JFrame内特定位置的特定大小。JPanel的滚动条已水平放置在其下方。有人可以帮助我吗?我已经试过了,没有成功! 最佳答案 使用JScrollPane并强制其preferredSize为您给定的大小(或将scrollPane容器LayoutManager设置为null并在滚动Pane上调用s

java - 如何将图像绘制到 JPanel 或 JFrame?

如何将图像绘制到JPanel或JFrame,我已经阅读了oracle的相关教程,但我似乎无法正确理解。我需要图像“BeachRoad.png”显示在一组特定的坐标上。这是我目前所拥有的。publicclassLevel1extendsJFrameimplementsActionListener{staticJLayeredPaneEverythingButPlayer;staticLevel1l1;publicLevel1(){EverythingButPlayer=newJLayeredPane();BufferedImageimg=null;try{img=ImageIO.read

java - 如何向带边框的 JPanel 添加填充

我想给一些JPanel添加填充。我找到了这个答案:https://stackoverflow.com/a/5328475/1590323它适用于没有边框的面板。但是对于已经有边框的面板我该怎么做呢?(在本例中为TitledBorder)我试过:JPanelmypanel=newMyPanel();//PanelthatIamgoingtoaddaTitledBorderto,butneedspaddingmypanel.setBorder(newEmptyBorder(10,10,10,10));JPanelmypanel_container=newJPanel();TitledBor

java - 可滚动的 JPanel

如何使JPanel可滚动?我在使用将其添加到包含面板时实现了可滚动界面tabbedPane.add("Editor",newJScrollPane(storeyEditor=newMNScrollablePanel()));没有效果代码:publicclassMNScrollablePanelextendsJPanelimplementsScrollable{publicDimensiongetPreferredScrollableViewportSize(){returngetPreferredSize();}publicintgetScrollableBlockIncrement(

java - 将 JPanel 转换为图像

有没有办法将JPanel(尚未显示)转换为BufferedImage?谢谢,杰夫 最佳答案 您可以从BufferedImage创建一个图形对象,您可以使用它来调用JPanel上的绘制,例如:publicBufferedImagecreateImage(JPanelpanel){intw=panel.getWidth();inth=panel.getHeight();BufferedImagebi=newBufferedImage(w,h,BufferedImage.TYPE_INT_RGB);Graphics2Dg=bi.creat