Tag: swing

自定义JComboBox:当LAF是系统LAF时,“无限循环事件”

我自定义我的JComboBox如下。 程序在默认LAF下运行正常,但每当我将LAF更改为系统LAF(另一个LAF,Nimbus,没问题)时,点击按钮后会出现无限循环。 我看到actionPerformed方法被无限调用。 请帮我解决这个问题。 我用的是jdk 1.6.0_33 如果有任何不明确的意思,我很抱歉。 我英文不太好 提前致谢。 package sig.dw.ui; import java.awt.Component; import java.awt.FlowLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.ComboBoxEditor; import javax.swing.DefaultComboBoxModel; import javax.swing.JButton; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JPanel; //import javax.swing.event.EventListenerList; /** * * @author congnh */ public class ButtonableComboBox extends JComboBox{ private ButtonableComboBoxEditor comboBoxEditor; public ButtonableComboBox(){ super(); comboBoxEditor = new ButtonableComboBoxEditor(); // […]

Jlabel HTML格式

我有一个JLabel,里面有一个电子邮件地址。 我在JLabel上使用了HTML格式,因此它显示为链接。 但是,您无法单击该链接。 实际上,您无法选择标签中的任何文本。 是否有可以在JLabel上设置的属性允许用户至少选择电子邮件的文本,最好是按照他们在网页上的方式单击电子邮件地址? 我的JLabel代码基本上是: JLabel l = new JLabel(“bob@bob.com”);

保持文本检索的格式

我正在制作一个具有聊天function的网络应用程序。 在聊天中,我有一个用于显示消息的JTextPane和一个用于输入的消息。 然后我有一些按钮,允许在输入文本上添加样式(粗体,斜体,字体大小,颜色)。 文本在输入窗格上正确格式化,但是当移动到显示窗格时(一旦按下正确的JButton ),它只具有最后一个字符的格式。 如何在保持原始格式的同时移动文本?例如,如果我在输入上写“Hello Worl d ”,则显示“Hello Worl d” textPane是输入窗格 设置地点: final SimpleAttributeSet set = new SimpleAttributeSet(); 使输入文本加粗的代码(与添加其他样式相同): bold.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { StyledDocument doc = textPane.getStyledDocument(); if (StyleConstants.isBold(set)) { StyleConstants.setBold(set, false); bold.setSelected(false); } else { StyleConstants.setBold(set, true); bold.setSelected(true); } textPane.setCharacterAttributes(set, true); } }); 用于将文本从输入窗格移动到显示窗格的代码: getInput.addActionListener(new ActionListener() { @Override […]

如何将JEditorPane插入JTable单元格?

我想把JEditorPane放在JTable单元格中。 我写过: jTabel1.setDefaultRenderer(String.class, new StringEditorPane()); ……… class StringEditorPane extends JEditorPane implements TableCellRenderer { public StringEditorPane() { setContentType(“text/html”); } public Component getTableCellRendererComponent( JTable table, Object styledString, boolean isSelected, boolean hasFocus, int row, int column) { if (isSelected) { String styledText = (String) styledString; setText(styledText); setBackground(getSelectionColor()); return this; } else { String styledText = (String) styledString; setText(styledText); […]

如何设置字体的颜色?

我有一个JList并在该列表中,我想更改以下单词的字体颜色。 有人说我必须使用CellRenderer,但我还不熟悉。 现在,我的问题是如何设置此渲染器来更改字体的颜色? 对此事有何看法? 谢谢…

JLabel文本乱码

我看到一个涉及JLabel的奇怪问题,用于显示一系列数字。 标签的文本通常类似于0.0 – 100.0 (例如)。 问题是,对于少数几个用户,文本显示为乱码。 在此示例中,文本将显示为/ – /,0 // – / 。 这是我目前所知道的: 它似乎是某种错误的错误,因为显示的每个字符都是预期字符后面的一个Unicode字符。 两个数字之间的短划线字符在应用程序中被硬编码为字符串文字。 它发生在各种版本的Oracle JVM上,包括1.6.x和1.7.x. 它发生在几台精选的Windows 7机器上。 什么可能导致这类问题? 我还应该调查什么? 谢谢。

如何在java swing中获取要在JTable中显示的图像

我创建了一个jTable并将ImageIcon对象放在其中一列中。 我想知道如何让它显示图像而不是图像名称作为字符串。 谢谢

Thread.sleep和重新绘制

我有一个显示文本的面板。 我希望面板更改其文本,然后在其他任何事情发生之前暂停应用程序。 我正在使用Thread.sleep(1000)。 但是,出于某种原因,应用程序在调用Thread.sleep之前没有完成绘制面板(文本没有被更改)。 我也试过这个: board.invalidate(); board.setLeftMessage(“Not”); board.setRightMessage(“Here”); board.revalidate(); Date current = new Date(); long timeNow = current.getTime(); Date newDate = new Date(timeNow + 1000); while (current.before(newDate)) current = new Date(); 但也没有运气。 有人有建议吗? 非常感谢。

JScrollPane滚动条不可滚动

我有一个类绘制一些非常简单的图形,如线条,圆形和矩形。 线条是动态可扩展的,有时当它们超出分辨率时,如果没有滚动条,就无法看到。 因此,我已将JScrollPane添加到我的JFrame中,但不幸的是,尽管已经调用了布局管理器,但滚动条仍无法滚动。 这就是我所拥有的: – 绘制组件(线,矩形,圆圈)的类 – 设置JFrame / JScrollPane的类 这是我的GUI类的摘录代码: JFrame frame = new JFrame(“GUIFrame”); frame.setLayout(new BorderLayout()); // Layout already set frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); DrawComponent comp = new DrawComponent(); // Reference to class that draw components JScrollPane sp = new JScrollPane(comp, ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS, ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS); sp.setPreferredSize(new Dimension(1000, 1000)); frame.add(sp, BorderLayout.CENTER); frame.setSize(500,500); frame.setVisible(true); 使用上面的代码,我有Java向我展示一个包含我的jcomponents的滚动窗口的JFrame。 我已将滚动条设置为始终如上所示,但它们不可滚动,灰色显示。 正如Andrew所说,我花了一些时间来创建一个SSCCE来反映我正在尝试做的事情: import java.awt.BorderLayout; import […]

Java窗口没有设置背景颜色?

这可能是一个非常愚蠢的错误,但我只是开始学习.awt包。 我按照教程写了一封信,在video中他的窗口背景为红色,我的代码中没有错误但它不会改变背景颜色。 谢谢你的帮助! import java.awt.Color; import javax.swing.*; public class Test { public static void main(String[] args) { // TODO Auto-generated method stub JFrame f = new JFrame(); f.setVisible(true); f.setSize(350,350); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); f.setTitle(“Window”); f.setBackground(Color.RED); } }