Tag: swing

JTable可点击列标题

我正在尝试创建一个可单击的列标题(这样只要单击一个方法就会调用一个方法)。 链接到图像(因为我还没有10个声誉) http://img156.imageshack.us/img156/5764/clickablecolumn.png 列标题为红色矩形。 到目前为止,我所做的就是响应任何列字段(例如James,Benny-G和Rokas的字段)。 代码: public void mouseClicked(MouseEvent e) { System.out.println(“Mouse clicked”); TableColumnModel cModel = table.getColumnModel();//cModel – column model int selColumn = cModel.getColumnIndexAtX(e.getX());//gets the selected column by clicked x coordinate }

Java Swing Shift + F10辅助function

根据可访问性要求, Shift + F10应该打开右键单击上下文菜单。 在Swing中,一种方法是只将键绑定添加到您创建的每个组件。 但是,我已经尝试扩展EventQueue以处理所有Shift + F10印刷机。 特别是,我已经重写了dispatchEvent(AWTEvent)来将Shift + F10 KeyEvents转换为右键单击mousePresses: protected void dispatchEvent(AWTEvent event) { if (event instanceof KeyEvent) { KeyEvent ev = (KeyEvent) event; if ((ev.getKeyCode() == KeyEvent.VK_F10) && (ev.getModifiersEx() & InputEvent.SHIFT_DOWN_MASK) > 0) { KeyboardFocusManager kfm = KeyboardFocusManager.getCurrentKeyboardFocusManager(); Component comp = kfm.getFocusOwner(); Point mouse = MouseInfo.getPointerInfo().getLocation(); SwingUtilities.convertPointFromScreen(mouse, comp); eventToDispatch = new […]

mxHierarchicalLayout无法按预期工作

我正在使用JGraphx在Swing面板中绘制图形,一切正常。 我尝试在目标单元格中​​插入两个单元格并且正在工作,但布局正在改变,所有单元格都不是水平的。 所以我的例子是:1)用一些单元格构建一个图形: 2)按顶部按钮并在Hello中添加两个单元格: 如您所见,问题是布局不再是水平的,即使我再次调用mxHierarchicalLayout。 谢谢你的回答! package com.mxgraph.examples.swing; import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.event.ActionEvent; import java.awt.event.MouseAdapter; import java.awt.event.MouseEvent; import javax.swing.AbstractAction; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.SwingConstants; import com.mxgraph.layout.hierarchical.mxHierarchicalLayout; import com.mxgraph.model.mxCell; import com.mxgraph.model.mxGraphModel; import com.mxgraph.model.mxICell; import com.mxgraph.swing.mxGraphComponent; import com.mxgraph.view.mxGraph; public class HelloWorld extends JFrame { private mxGraphComponent graphComponent; private int idgenerator = 0; public […]

2D Java游戏。 在平铺图像上方移动精灵

– > 简介,你可以跳过这部分 我很高兴能够最终在这个平台上发帖,因为我自己通过这个社区获得了如此多的知识; 只是通过阅读。 所以我想说“大家好,谢谢! 实际内容(序幕): 虽然我在我的公司开发Objective-C,但我对JAVA开发完全感兴趣。 我对语法很满意但是在使用awt / swing / Graphics2D时遇到了一些重大问题。 这个概念: 具有800 * 600帧的JAVA应用程序。 在此框架上,您可以看到尺寸为50px²的16 * 12个瓷砖(即gras.jpg或tree.jpg)。 在这个框架上方,一个.png“玩家”正在移动。 该字段使用2维int数组[16] [12]生成,其中0表示“gras”,1表示“tree”。 – >这实际上是“有效”。 第一次尝试: 将(frame.add(…))16 * 12 JLabel与imageIcon“gras”或“tree”一起添加到JLayeredPane 添加(frame.add(…))类“entityLayer”以5ms更新为paint(Graphics g) { g.drawImage(imageIcon.getImage()); } 如果我添加带有图块的字段或实体图层,则此版本“有效”。 在每种情况下,entityLayer都会用灰色背景覆盖该字段,或者该字段下的“播放器”不可见; 第二次尝试: 在entityLayer绘制(Graphics g)方法中制作所有绘图。 但这不是我的意图。 我希望场地被绘制一次,而“球员”就像半透明背景一样,在场地上方绘制。 题: 我怎样才能让自己真正拥有两个独立的层次,这两个层次同样独立,而另一个层层重叠? 在某种程度上我的尝试是错误的,接近99%。 谢谢你马上。

Java Swing:将JLabel添加到JPanel

我只是想将JLabel添加到现有的JPanel中。 这看起来很简单,我四处寻找。 我认为这是对的,但标签没有出现在我的面板上。 有谁看到我错过了什么? 谢谢! ResultsPanel myPanel = new ResultsPanel(pnlResults); //pnlResults is an existing JPanel myPanel.addLabel(pnlResults); public class ResultsPanel extends JPanel { JPanel myPanel; public ResultsPanel(JPanel thisPanel) { myPanel = thisPanel; } public void addLabel(JPanel myResults) { JLabel myLabel = new JLabel(“test”, JLabel.LEFT); myPanel.setLayout(new FlowLayout()); add(myLabel); } } 编辑:为了回应下面的即时回复,我同意这似乎是完全矫枉过正。 我沿着这条路走下去,因为下面的代码也没有导致JLabel被添加到我的JPanel中: JLabel myLabel = new JLabel(“test”); […]

如果文本不适合JLabel,我想减小字体大小

关于这个问题有很多post,但我无法理解那里的人给出的答案。 就像在这篇文章中:“ 如何更改JLabel字体的大小以获取最大大小 ”答案将字体大小转换为14! 但这是静态的,在其他答案中也是如此; 他们的整个输出屏幕似乎增加了。 我在一个名为“lnum”的JLabel中显示某些数字,它可以显示最多3位数字,但之后它显示为“4 …”我希望如果数字能够适合标签,它不应该改变它字体大小,但如果数字是4位数,它应该以适合的方式减小字体大小。 注意:我不希望jLabel的尺寸发生变化。 我只是想改变它中的文字。 编辑:这是我试过的代码 String text = lnum.getText(); System.out.println(“String Text = “+text);//DEBUG Font originalFont = (Font)lnum.getClientProperty(“originalfont”); // Get the original Font from client properties if (originalFont == null) { // First time we call it: add it originalFont = lnum.getFont(); lnum.putClientProperty(“originalfont”, originalFont); } int stringWidth = lnum.getFontMetrics(originalFont).stringWidth(text); int […]

这个我正在制作动画的正方形背后留下了一条痕迹,任何人都可以找出原因吗?

感谢您查看此问题。 我想我只是在挫折中刮伤了我的头骨。 所以我得到的是一个包含’JPanel’的’JFrame’。 ‘JPanel’包含一个小的彩色方块,每当我点击窗口时它应该移动X像素。 好吧,基本上一切都表现得应有,但有一个例外。 当蓝色方块向右移动时,它会在其后面留下其他方块的痕迹。 但是,当我重新调整窗口大小时,小道就会消失。 Catalyst.java package Prototype; import java.awt.*; public class Catalyst { public static void main(String[] args){ World theWorldInstance = new World(“Prototype”, 100,100, 600,100); /*title,xpos,ypos,width,height*/ } } World.java package Prototype; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class World extends JFrame { Level mainPanel; public World(String title, int x, int y, […]

有没有一种简单的方法将Swing接口与数据源绑定

我正在使用WindowBuider编写Swing应用程序的管理部分,它基本上是填充了项目的表,我需要对它们执行CRUD操作。 数据来自MySQL数据库。 我可以手工完成,但需要很长时间 有一个简单的方法吗? 在Access窗体中使用类似的东西…… 谢谢

使用java DefaultCellEditor在JTable中获取正确的编辑行为

你可以通过点击它进入Jtable中的单元格,或者使用光标键/标签进入它。 使用defaultCellEditor和JtextField如果使用光标键,插入符号将放在现有文本字段的末尾,而如果双击该字段,则会突出显示最后一个单词。 虽然电子表格似乎有效(例如Open Office Calc),但是如果你选择进入字段并开始编辑,则清除字段并按下第一个字符成为字段中的第一个值,依此类推。 我希望我的应用程序的工作方式与电子表格相同。 通过inheritanceDefaultCellEditor并添加 final Caret caret = editField.getCaret(); caret.setDot(0); editField.setText(“”); 我可以在tabbing时让它按照我想要的方式工作,但它也会在双击时清除我不想要的字段。 那么请问如何确定键盘或鼠标是否触发了单元格编辑?

混合Swing / FX:无法从fxml控制器处理对话框

场景:顶级容器是一个Swing JDialog,它有一些fx内容,包括触发处理按钮的fx按钮。 在创建按钮并手动配置相应的eventHandler时,处理可以预期(对话框被隐藏)。 通过fxml创建/配置按钮时,不会释放该对话框。 下面的示例包含手动配置和fxml加载/绑定按钮,以查看不同的行为。 问题: 这个例子有什么问题吗? 是否有预期的swing / fx交互有任何差异(手动与fxml)? 如何让它从fxml工作? 代码: package fxml; import java.io.IOException; import javafx.application.Platform; import javafx.embed.swing.JFXPanel; import javafx.event.ActionEvent; import javafx.fxml.FXML; import javafx.fxml.FXMLLoader; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.FlowPane; import javax.swing.JDialog; import javax.swing.SwingUtilities; public class DisposeExample { @FXML Button closeButton; Button fxButton; private JDialog dialog; /** * The action handler method used […]