即时制作一个物理模拟器的乐趣,我正在查找graphics教程,当我试图找出所有这些J之间的差异。 有人可以详细说明他们,或者提供一个有用的来源的链接?
请问是否有另一种方法如何在运行时改变字体作为使用FontUIResource,整个AWT / Swing GUI,没有任何知识/兴趣,如果有本地variables和types的JComponents import java.awt.*; import java.awt.event.*; import java.util.Locale; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.*; import javax.swing.plaf.FontUIResource; import javax.swing.plaf.basic.BasicComboBoxRenderer; public class SystemFontDisplayer extends JFrame { private static final long serialVersionUID = 1L; private JFrame frame = new JFrame("Nimbus UIDeafaults and Font"); private JComboBox fontsBox; private javax.swing.Timer timer = null; private JButton testButton = new […]
我试图在Swing中接触MVC体系结构的限制,但是当我尝试所有的东西(从SwingWorker或Runnable#Thread )都在EDT 我的问题: 是有一些限制或严格依赖的实现顺序(包装到SwingWorker或Runnable#Thread )? 有限的是如果是JComponent#方法线程安全与否? Swing中MVC体系结构的基本特征? INC。 容器重新布局? 注意:对于我的SSCCE我采取了SSCCE一个很好的例子,也许通过严格控制这个principes是不可能产生任何EDT缺乏或GUI冻结的 import java.awt.BorderLayout; import java.awt.event.*; import java.beans.PropertyChangeEvent; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; import java.util.LinkedList; import java.util.Queue; import javax.swing.*; public class MVC_ProgressBarThread { private MVC_ProgressBarThread() { MVC_View view = new MVC_View(); MVC_Model model = new MVC_Model(); MVC_Control control = new MVC_Control(view, model); view.setControl(control); JFrame frame = new JFrame("MVC_ProgressBarThread"); […]
我正在做一个项目,我需要一些自定义的挥杆组件。 到目前为止,我已经做了一个新的button与一系列的图像(Java的金属外观根本不适合我的用户界面)。 我实现了这个新的组件的MouseListener ,这是我的问题出现的地方。 我的小部件更改hover图像,单击等,除了我的MouseListener拿起鼠标进入整个GridLayout容器,而不是进入图像。 所以我有一个大约200 * 100的图像和周围的容器大约400 * 200和mouseEntered方法是当它进入GridLayout部分(甚至它的空白部分),而不是在图像上触发。 我怎么能这样做,只有当我hover在图像上才被解雇? 我试图设置大小和范围和其他属性无济于事。 编辑:这是我的问题的演示。 正如你所看到的(颜色非常相似),右下angular的button只要inputGridlLayout部分GridlLayout 。 我只想要它突出显示当我超过图像实际,而不是GridLayout部分。 我不会添加MouseListener方法,因为它们只涉及切换显示的图像。 public customWidget() { this.setLayout(new FlowLayout()); try { imageDef=ImageIO.read(new File("/home/x101/Desktop/buttonDef.png")); imageClick=ImageIO.read(new File("/home/x101/Desktop/buttonClick.png")); imageHover=ImageIO.read(new File("/home/x101/Desktop/buttonHover.png")); current=imageDef; } catch (IOException e) { e.printStackTrace(); } this.addMouseListener(this); } protected void paintComponent(Graphics g) { super.paintComponents(g); g.drawImage(current, 0, 0, current.getWidth(), current.getHeight(), null); } 编辑:添加代码部分
AncestorListener , ComponentListener或HierarchyListener监听JPanel和JComponents更改的可见性是否存在一些规则或好的/不好的体验? 他们中的一个比其他人更好还是更安全? 我特别想知道何时以及如何隐藏JPanel / JComponent 。 注意下面的代码包含不正确的Swing规则,比如在这种情况下使用Thread.sleep(int) ,以允许我在Swing GUI中打印正确的Listeners顺序 import java.awt.BorderLayout; import java.awt.CardLayout; import java.awt.event.ComponentEvent; import java.awt.event.ComponentListener; import java.awt.event.HierarchyEvent; import java.awt.event.HierarchyListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.event.AncestorEvent; import javax.swing.event.AncestorListener; public class CardlayoutTest extends JFrame { private static final long serialVersionUID = 1L; public CardLayout card = new CardLayout(); public CardlayoutTest() { […]