Tag: swing

如何为JtextArea添加不同的字符集支持?

我需要在JTextArea中显示一个Cp037字符编码的文档? 我认为JTextArea默认支持UNICODE字符编码。 如何在JTextArea添加Cp037 charater set支持?

使用Timer在JTextArea中实现打字机效果?

我正在制作一个文本冒险游戏,并遇到了一个问题,我无法以我想要的方式显示我的一些文本。 当输入一些单词时,玩家可以开始引入新房间。 我希望这个介绍有“打字机”的效果。 此事件需要在我的程序ActionPerformed方法中进行。 例如,当用户键入“Move”然后按Enter键时,我希望生成的文本一次打印一个字符。 以下是我在ActionPerformed之外使用的当前方法来实现此效果: public void slowPrint(String message, long millisPerChar) { //makes it so that the player cannot input while the text is being displayed userinput.setEditable(false); String o; for (int i = 0; i < message.length(); i++) { //adds each letter one-by-one o = "" + message.charAt(i); output.append(o); //moves the JTextArea to the […]

更改DefaultMutableTreeNode的文本样式

我创建了一个自定义JTree。 可以过滤该树以仅显示包含给定条件(字符串)的那些节点。 现在,有没有办法只扩展那个包含搜索字符串的DefaulMutableTreeNode部分? 如果树节点具有label =“StackOverflow”并且用户正在搜索包含“Stack”的节点,则“StackOverflow”节点将以“Stack”部分粗体呈现。 怎么实现呢?

试图让JTable + JScrollPane滚动

我已经完成了谷歌搜索并尝试实施了许多关于JTable和JScrollPane的不同解决方案。 以下是我遇到的问题的自包含示例。 我希望能够有这些表的水平滚动条。 非常感谢您的协助: package org.examples; import java.awt.EventQueue; import java.awt.Frame; import java.awt.Rectangle; import java.util.ArrayList; import java.util.List; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.JViewport; import javax.swing.ListSelectionModel; import javax.swing.table.AbstractTableModel; public class TableTest extends JFrame { private JTable tableTest_1; private ArrayListStringTableModel tableTestModel_1; private JTable tableTest_2; private ArrayListStringTableModel tableTestModel_2; private JScrollPane tableTestScrollPane_1; private JScrollPane tableTestScrollPane_2; private class ArrayListStringTableModel […]

以编程方式在JFrame中交换两个JPanel

我正在努力完成上述function,但收效甚微。 我正在使用带有2列和2行的GridLayout来向用户显示类似拼图的游戏,其中有4个(200×200像素)JPanels(3个彩色,1个默认bgColor),它们填充整个contentPane。 如果面板位于灰色面板旁边,则单击彩色面板将在评估中解析。 如果是这样,他们应该交换。 我完成了最后一步的每一步,他们交换了。 这是代码: public class MainClass extends JFrame { //Generated private static final long serialVersionUID = 4710628273679698058L; private SpecialPanel redPanel; private SpecialPanel greenPanel; private SpecialPanel yellowPanel; private SpecialPanel grayPanel; public MainClass() { super(“Puzzle”); initPanels(); setSize(410, 410); setLayout(new GridLayout(2, 2)); this.add(redPanel); this.add(greenPanel); this.add(grayPanel); this.add(yellowPanel); } private void initPanels() { redPanel = new SpecialPanel(); […]

Jtabbedpane使用多个类

我是java的新手,我正在创建一个windowbuilder程序。 我想知道是否可以使用Jtabbedpane并在程序窗口中的选项卡之间切换,如果我可以使用actionlistener从单独的类中获取内容。 例如,我有一个带有两个选项卡和两个类的程序,第一个选项卡将包含来自一个类的代码,第二个选项卡将来自第二个类。 谢谢

为什么instanceof不能与JPanel和JComponent一起使用?

我觉得我在这里错过了一些令人眼花缭乱的东西,这对于Java大师来说是如此低调的结果: 我的代码看起来像这样: private static void myFunc(JComponent c) { if (c instanceof JPanel) { //stuff } else if (c instanceof JMenu) { // other stuff } } 尽管JPanel和JMenu都是JComponent的子类,但第一个instanceof给出了一个错误: Incompatible conditional operand types JComponent and JPanel 而第二个工作正常。 为什么我认为我的JComponent永远不会是JPanel ?

JDialog没有显示最小化/关闭按钮

在研究问题时,似乎大多数人都希望做相反的事情(即删除最小化/关闭按钮)。 我没有成功使用reoccurrent setUndecorated和setDefaultCloseOperation 这是我的代码: private class TestDialog extends JDialog { public static final String title_ = “Test Dialog”; public TestDialog(JFrame parent) { super(parent,title_,true); setMinimumSize(new Dimension(500,500)); setLocationRelativeTo(null); setUndecorated(false); setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); } } 当我显示对话框时,我得到以下内容: 其他信息: 操作系统:Ubuntu Java版本:1.7.0_55

JTable添加新行

我在设计时有一个5行的JTable。 现在我必须动态添加更多行。 当我添加更多行时,我得到数组超出绑定exception错误。 我该如何解决这个问题? item_list = new javax.swing.JTable(); item_list.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { {null, null, null}, {null, null, null}, {null, null, null}, {null, null, null} }, new String [] { “No.”, “Description”, “Cost” } ) { Class[] types = new Class [] { java.lang.Integer.class, java.lang.String.class, java.lang.Float.class }; public Class getColumnClass(int columnIndex) { return types […]

动态更新LookAndFeel值

我希望能够动态更新我的Swing GUI的LookAndFeel属性。 在这种情况下,我有一个简单的Swing / Awt游戏,运行起初是Nimbus LookAndFeel 。 在启动后的不同时刻,我想改变(让我们说)一个细节:我的应用程序的背景颜色。 我可以通过这样做来改变背景颜色: for (UIManager.LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) { if (“Nimbus”.equals(info.getName())) { UIManager.setLookAndFeel(info.getClassName()); UIManager.getLookAndFeelDefaults().put(“Panel.background”, Color.RED); SwingUtilities.updateComponentTreeUI(SomeGame.this); break; } } 这“工作”,因为应用程序的背景颜色正确更改,程序不会崩溃。 但是在命令行上我得到错误: Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException at javax.swing.plaf.synth.SynthLookAndFeel.paintRegion(SynthLookAndFeel.java:371) at javax.swing.plaf.synth.SynthLookAndFeel.update(SynthLookAndFeel.java:335) 事实上,某些东西是空的,但我无法弄清楚它是什么或如何解决它。 必须有一些我不理解的东西。 我查看了有关在Nimbus中设置背景颜色以及在启动后覆盖LookAndFeel信息的其他StackOverflow问题。 当我调用getLookAndFeelDefaults() ,我还需要指定其余的默认值吗? Java 1.6和1.7之间的工作方式有变化吗?