Tag: swing

如何将图像插入到JTable单元格中

有人能指出我正确的方向如何将图像添加到Java表格单元格。

限制用户在JTextField中input时间的最佳方法

在我的一个Java应用程序中,有一个用户应该进入的领域。 我知道,我可以简单地保持它作为一个正常的JTextField并在validation时,我可以检查值等… 但是我觉得有比这更好的方法.. 例如,如果这是一个date的问题,那么可以非常方便地使用JXDatePicker (它带有swingx )。 最终,用户select保证是一个date。 同样,也必须有更好的时间select方式。 如果你知道更好的解决scheme,有人会分享你的知识吗? 任何想法是赞赏。 谢谢!

用AffineTransform旋转图像

我有class级叫Airplane 。 在这个类里面我有variablesimg这是一个BufferedImagetypes。 更重要的是,我得到了类WorldMap ,它覆盖了函数paintComponent(Graphics g) : @Override public void paintComponent(Graphics g) { Graphics2D g2d = (Graphics2D) g; g2d.drawImage(mapa, 0, 0, getWidth(), getHeight(), null); drawAirplanes(g2d); } 函数drawAirplanes()看起来像这样: private void drawAirplane(Graphics2D g){ for(Samolot i: s){ i.rotateAirplane(); g.drawImage(i.getImg(),i.getX(),i.getY(),(int)i.getDim().getWidth(),(int)i.getDim().getHeight(), null); } } 它只需要1)旋转飞机(BufferedImage里面的飞机对象)2)吸引他。 我的Airplane.rotateAirplane()函数如下所示: public void rotateSamolot() { AffineTransform tx = new AffineTransform(); tx.translate(10,10); //10, 10 is height […]

是摆动线程安全的MVC

我试图在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"); […]

突出显示用于JTable文件筛选的TableCell中的subString

如果在JTextField / Document中包含与String值相同的文本,那么如何使用TableCell将文本types化成JTextField (然后通过将DocumentListener传递给RowFilter ) 然后为同步的TableCell(s)相同文本加Color.Red (意思是改变文本Color.Red TableCell(s) 我知道通过使用一些黑客的使用是可能的 1 /通过使用getTableCellRendererComponent 2 /通过使用prepareRenderer 有没有另一种,也许正确的方法(S) 从JTable教程一点点修改代码 import java.awt.*; import java.util.regex.PatternSyntaxException; import javax.swing.*; import javax.swing.event.*; import javax.swing.table.*; public class TableFilterSorter extends JPanel { private boolean DEBUG = false; private static final long serialVersionUID = 1L; public TableFilterSorter() { super(new BorderLayout(5, 5)); final JTextField filterCpText = new JTextField(); […]

KeyListener,keyPressed与keyTyped

我有一个JFrame(以及扩展JFrame的类),当我按F5键时,我想要做一个动作。 所以,我让这个类实现了KeyListener。 与此同时,来了三种方法,keyPressed,keyReleased和keyTyped。 我应该用哪种方法来听F5被按下? keyPressed或keyTyped? 我目前有以下,但是当我按F5时它不会打印任何东西。 public void keyPressed(KeyEvent e) { if(e.getKeyCode() == KeyEvent.VK_F5) System.out.println("F5 pressed"); } public void keyReleased(KeyEvent arg0) { // TODO Auto-generated method stub } public void keyTyped(KeyEvent arg0) { // TODO Auto-generated method stub }

在JTabbedPane选项卡标题中的Java:JProgressBar(或等价物)

如果我真的想这样做,我可以把一个JProgressBar(或它的等价物)在JTabbedPane选项卡? (我的意思是,不是在标签本身, 我将如何做这样的事情? 编辑我真的想把进度栏的标签的标题,而不是标签本身。 这是一些ascii艺术: —————————————————- | Tab 1 || Tab 2||Tab-with-progress-bar||Tab 4| ———– ——————————– ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' ' —————————————————- 所以这是真正的“标签2”,目前可见,但我希望进度条(或同等)在第三个标签的标题中可见。 编辑2 这必须在Java 1.5上工作:这必须在无数的MacOS 10.4和MacOS 10.5苹果电脑上运行,这些电脑将永远不会配备Java 6(有些是做的,有些是不行的,而且从来不会这样做,这不是我的呼叫)

我们是否应该使用EventQueue.invokeLater来处理Java桌面应用程序中的任何GUI更新?

我知道通过使用这个方法,runnable参数被提交给系统EventQueue。 但是,所有的GUI更新都应该使用这种方法来完成? 我的意思是,如果我想说,更改JButton的文本,我应该使用这样的东西: java.awt.EventQueue.invokeLater(new Runnable() { public void run() { jButton1.setText("changed text"); } }); 如果我应该使用这种方法,我们可以使用任何模式来避免这个重复的代码?

JTable与水平滚动条

有没有办法在必要时启用水平滚动条? 情况是这样的:我有一个JTable ,其中一个单元存储了很长的数据。 因此,我需要有水平滚动条。 任何人有这个想法?

限制JTextField中的字符数

我想设置一个JTextField的最大长度,所以你不能input比限制更多的字符。 这是我到目前为止的代码… textField = new JTextField(); textField.setBounds(40, 39, 105, 20); contentPane.add(textField); textField.setColumns(10); 有没有简单的方法来限制字符数量?