我正在开发带有Swing的Java应用程序,该应用程序具有带有按钮和JTable的Jframe。它还读取和写文件。到目前为止,我为每个输入/输出文件创建了不同的类。默认台式模型,表格和执行用户输入验证的类。我的主要课程仍然约为1000行。它包括Jframe定义(按钮,字段标签等)表单元格渲染器/编辑器和实际代码。这将是一个独立的应用程序,没有任何代码将被重复使用或共享。我是否应该担心我的主班级的大小,并尝试将框架和表代码移至各自的课程?还是可以接受的主类的大小。在这种情况下,最好的做法是什么?我发现的大多数示例都是针对非常简单的应用程序,其中所有内容都在同一类中。感谢您的任何输入链接到主类的源
我有一个透明的未修饰的JFrame,我使用AWTUtilities.setWindowOpaque(this,false)设置了它。在JFrame上,我有一个滚动Pane;它在Windows上完美运行。在Mac上,整个JFrame都是可拖动的;因此,当我尝试通过单击并按住滚动条上的鼠标来滚动滚动Pane时,整个框架都会移动,而不是滚动条拇指。我也尝试使用setBackground(newColor(0,0,0,0))而不是setWindowOpaque(),但它有同样的问题。关于如何解决此问题的任何想法? 最佳答案 如thissim
我使用带有自定义标题栏和自定义大小调整器的未修饰JFrame。一切正常,但是当我使JFrame未修饰时,我失去了对Windows左/右键绑定(bind)的支持(似乎它是由Windowsnative实现的)。我想为我的应用程序重新实现此功能。我的问题:我可以在一个按键监听器中检测到是否按下了Windows键,但我无法检测到另一个键(在我的例子中是左/右)是否与Windows键一起按下(InputEvent中没有修饰符WINDOWS_MASK_DOWN)。可能有人知道解决方法?这是我的代码:importjava.awt.BorderLayout;importjava.awt.event.K
我是Java的新手,决定制作一个程序:当您左键单击时,在窗口中设置一个点。然后当您再次单击时,另一个点。依此类推...然后它将所有点与线连接起来,并根据线的一侧有多少点对线的一侧进行着色。(像这样)问题从这里开始:现在我还需要一项功能。当我右键单击时,我希望出现鼠标坐标处像素的透明度。因此,当在中间单击时,它会比我右键单击亮区时更透明(或更暗)。我做了一些谷歌搜索但找不到答案。我最接近的是用机器人创建一个屏幕截图并将其用作缓冲区图像,然后以这种方式分析像素。但是我似乎没有工作,因为无论我在哪里右键单击,我都会为ARGB获得255,255,255,255。有时还有奇怪的东西,比如AGBA
我刚刚在Swing上看到一篇文章在JavaFX中使用。如何将使用jFrame显示图形的应用程序移植到JavaFX中?另外,jButtons和jSliders会以正常方式工作吗?我知道这是一个一般性问题,但我对JavaFX知之甚少,并且对通过JavaFX包将一些桌面应用程序移植到Web感到好奇。 最佳答案 javafx文件:importjavax.swing.JComponent;importjavafx.ext.swing.SwingComponent;classNewFxComponentextendsSwingComponent
默认情况下,Java在项目中查找文件,例如。我创建了一个名为计算器的项目并想要一个背景图像,我会将所需的图像放在项目文件夹中。我希望通过更改Java查找图像的位置使它更整洁。我已经创建了一个名为res的文件夹并将其添加到构建路径中,但是如果我将图像放入该res文件夹中,它就找不到它。例如:launcher.setIconImage(newImageIcon("Logo.png").getImage());如果我将Logo.png放在res文件夹中,它不会更改IconImage,如果我将它放在项目文件夹中,它会更改。当我说项目文件夹时,我指的是在您创建新Java项目时eclipse创建的
在实现您自己的呈现时使用AWTFrame和SwingJFrame与不使用标准JavaGUI组件之间的主要区别是什么?这是上一个问题的后续:AWTcustomrendering-capturesmoothresizesandeliminateresizeflicker关于Swing与AWT的典型谈话要点似乎并不适用,因为我们只使用框架。例如,重量级vs轻量级已经过时了(JFrame扩展了Frame)。那么对于这种情况,JFrame还是Frame哪个最好?它有什么有意义的不同吗?注意:在这种情况下,不希望在EDT中呈现。有一个未链接到EDT的应用程序工作流,渲染是在EDT之外按需完成的。将
我正在尝试以一种不寻常的方式调整JFrame的大小:框架的宽高比必须保持不变。我写了这个简单的代码;在这种情况下,比率为1/2:publicclassPanelextendsJFrame{publicPanel(){addComponentListener(newComponentAdapter(){@OverridepublicvoidcomponentResized(ComponentEvente){System.out.println("Reseized");setSize(getSize().width,getSize().width*2);}});}但是这个frame有重绘的
当我在我的第一个Java类(class)中学习创建JavaGUI:s时,我被教导将我的窗口创建为JFrame实例,然后将一个JPanel添加到每个JFrame最后将所有GUI组件添加到JPanel:classExampleextendsJFrame{Example(){JPanelpanel=newJPanel();this.add(panel);//Createcomponentshereandaddthemtopanel//Perhapsalsochangethelayoutmanagerofpanelthis.pack();this.setVisibility(true);}pu
作为我程序的一部分,我需要一个按钮,当用户点击它时,它会打开一个新窗口。好吧,我想我应该有一个制作框架并通过按钮调用它的类。但我不知道如何开始。我刚刚在程序中找到了我的按钮,但它不起作用。那么有人可以告诉我该怎么做吗?或对其进行编码。 最佳答案 这是您想要执行的操作的简化版本:JButtonbutton=newJButton("NewFrame");button.addActionListener(newActionActionListener(){publicvoidactionPerformed(ActionEvente){//