草庐IT

java - 获取旋转矩形的角

我有一个围绕它的中间旋转的矩形,我有另一个矩形我想连接到旋转矩形的右上角。问题是我不知道如何得到角,以便第二个矩形始终粘在那个角上。这是我的示例代码。现在第二个矩形将一直在同一个地方,这不是我想要的结果。packageTest;importjava.awt.*;importjava.awt.event.*;importjava.awt.geom.*;importjavax.swing.*;classTest{publicstaticvoidmain(String[]args){newTest();}publicTest(){EventQueue.invokeLater(newRunna

java - JPanels 不会完全拉伸(stretch)以占据可用空间

我有一个面板,我在其中并排放置了几个尺寸和颜色不同的迷你面板,它们应该占据整个父面板(​​水平)。为此,我使用BorderLayout(用于父面板),并使用BoxLayout用于放置所有迷你面板的子面板(参见下面的代码)。它确实可以正常工作并且在调整大小和一切时都能正常运行。然而,随着迷你面板数量的增加,一个奇怪的行为发生了:父面板的末尾出现了空白。我想我发现这是布局管理器中的一个拉伸(stretch)错误,因为为了拉伸(stretch)面板,布局管理器会尝试向每个迷你面板添加一个像素。但是,当mini-panel的数量很大时,为每个mini-panel添加一个像素将导致添加许多像素并

java - 当 Toolkit.getDefaultToolkit() 抛出 AWTError 时,如何在 Java 中读取图像?

我正在使用Java读取图像文件java.awt.Imageimg=Toolkit.getDefaultToolkit().createImage(filePath);在某些系统上这不起作用,它会抛出一个AWTError提示sun/awt/motif/MToolkit。您还能如何从图像文件创建java.awt.Image对象? 最佳答案 我使用ImageIO读取图像.Imagei=ImageIO.read(InputStreamin);javadoc也将提供更多信息。 关于java-当To

Java 玻璃面板

我有一个问题。我想问你如何实现GlassPane来在上面绘画。我的意思是,如果我单击鼠标按钮,在mouseClicked事件中,应该创建我的透明玻璃Pane,因为我想看到我在glassPane后面的所有组件,并且我可以使用mouseDragged事件在其上绘画。当我释放鼠标按钮时,我的glassPane消失了。我还有一个问题。当我在玻璃板上绘画时,它们后面的所有组件都会刷新并重新绘制?也许有人有很好的玻璃板示例,这可能对我有帮助。 最佳答案 HowtoCreateTranslucentandShapedWindows

java - JFrame 是如何工作的?在内心深处,它是如何画东西的?

通常,当我创建一个类时,例如Customer,我会给它一些数据字段,即publicintIdNumber;和一些方法,即public字符串getName(){...}。但仅此而已。我无法超越并开始玩弄图形-我只能在类(class)允许的范围内操作和组织数据。我无法理解JFrame内部发生的事情。谁编写了JFrame类,他们是如何编写一个可以使框出现在屏幕上的类的?内部发生了什么导致这种情况发生?有什么办法可以模仿吗?同样的问题适用于所有基于图形的Java类。我真的很想知道它是如何工作的,因为每次我使用其中一个时都会困扰我。 最佳答案

java - Icon 和 ImageIcon 的区别?

Iconbug=newImageIcon(getClass().getResource("bug1.png"));ImageIconbug=newImageIcon(getClass().getResource("bug1.png"));这两个有什么区别?我的书总是使用第一行中的方式来声明一个ImageIcon,但是用第二种方式声明它不是更好吗,因为更具体地说它是一个ImageIcon? 最佳答案 Icon是一个接口(interface),而ImageIcon是该接口(interface)的一个实现。第一个更好,因为这意味着您以后可

java - 在 Java 中制作一个不可聚焦的窗口

(已解决:WindowStateListener和当窗口聚焦时对toBack的延迟调用)大家好!我一直在想办法制作一个java.awt.Window(任何子类都可以),这样它就不会被带到前面。我正在开发一个Java“Samurize-like”程序,该程序出现在所有应用程序窗口下方并在屏幕上显示小部件。就像“AlwaysontopwindowswithJava”一样,我希望有一些简单的东西,希望只有一个方法调用,如果可能的话,但我已经检查了API文档,但我没有运气。编辑:抱歉,我的意思是“总是在底部”,而不是简单的“无法集中注意力”。这是一个基本的测试用例。单击窗口时,它不应位于当前屏

java - JSpinner ActionListener 替代品

在我的程序中,我想对数字使用JSpinner。这个数字稍后会被用来计算一些东西。每次用户单击其中一个微调器按钮(向上或向下)时,我希望结果自动更新。由于您不能将ActionListener添加到JSpinner(我认为这真的很奇怪),我在这里问如何做类似的事情(我已经为此准备了一个ActionListener,可以在任何其他监听器中更改当然)。 最佳答案 您可以添加ChangeListener到微调器。这将由按下按钮(或直接编辑字段)触发。spinner.addChangeListener(newChangeListener(){@

java - GridBagLayout:如何设置固定列宽?

多年来,我一直在尝试在以下代码中设置固定的列宽...问题是,当我向左侧面板添加标签时,宽度会自动增加...我会比如要固定列宽...谁能帮帮我??这是代码:importjava.awt.AWTException;importjava.awt.BorderLayout;importjava.awt.Color;importjava.awt.Cursor;importjava.awt.Dimension;importjava.awt.Graphics;importjava.awt.Graphics2D;importjava.awt.GridBagConstraints;importjava.

java - ActionPerformed (AWT) 的 BeanCurrentlyInCreationException

创建新按钮我必须在新线程中运行代码。通常我们使用newThread(....).start();但我想知道为什么我们不能使用@Async-Annotation。这是代码:packagenet.vectorpublish.desktop.vp;importjava.awt.event.ActionEvent;importjava.awt.image.BufferedImage;importjava.net.MalformedURLException;importjava.net.URL;importjava.util.Set;importjava.util.concurrent.Exec