Tag: swing

SwingWorker和JProgressBar问题

我需要将给定的任何图像转换为字节数组以满足encryption要求。 我使用JProgressBar来监视转换进度,以防所选图像很大: File p= new File("C:\"); BufferedImage oImg = ImageIO.read(p); ByteArrayOutputStream ba = new ByteArrayOutputStream(); ImageIO.write(oImg, "jpg", ba); ba.flush(); ProgressBar pb = new ProgressBar(); Thread thread = new Thread(pb); thread.join(); pb.fireTask(ba.toByteArray()); 我定义了一个使用SwingWorker的ProgressBar类,如下所示: public class ProgressBar extends JPanel implements Runnable { private JProgressBar progressBar; private Task task; private byte[] imgByteArray; public void run() { createGUI(); } […]

一个JTable单元格中的JComboBox

我有一个使用基于对象matrix的模型创build的JTable。 对于每一行,我想使用一个JComboBox来放置一个特定的列(第五个)一些信息。 我已经尝试了以下内容: for(int i=0; i < n ; i++) { ….. data[i][5] = new JComboBox(aux); // aux is a Vector of elements I wanna insert } table.setModel(new MyTableModel()); // MyTableModel() already takes into consideration the data[][] object 问题是data [i] [5] = new JComboBox(aux); 不在JTable的特定单元格中创buildJComboBox对象,而是将代码粘贴到行中。 我能做些什么来解决这个问题? 谢谢。

如何在另一个图像上绘制图像?

我有一个关于随机城市交通networking模拟的Java项目,我设法find了实现这个项目的方法,所以我把每个交叉点分成了一个基本上是扩展的JPanel类(叫做家乐福)的部分。一切工作都很顺利,直到我陷入如何绘制车辆并使它们通过道路。 所以我的问题是如何绘制一个图像(车辆图像)在另一个图像(道路)?

TableCellRenderer以及如何刷新单元格背景而不使用JTable.repaint()

可以正确地刷新基于外部值的背景,而不必强制重绘table.repaint(); 基于,使用和由kleopatra和气垫船充分的鳗鱼做的伟大的代码testing 对于Java6 / 7是有效的,因为API没有任何变化 我的SSCCE工作正常,通过JTable.repaint()重新绘制 import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.GridLayout; import javax.swing.DefaultComboBoxModel; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.SwingUtilities; import javax.swing.border.EmptyBorder; import javax.swing.table.DefaultTableCellRenderer; import javax.swing.table.DefaultTableModel; public class MyTableAndRenderer { private JFrame frame = new JFrame(); private JPanel panel = new JPanel(); private String[] items = {"Item […]

是否将JLabel添加到JPanel“隐藏”JPanel?

如果我在GridLayout中有几个JPanel,每个都有一个MouseAdapter,然后创buildJLabel(带有文本)并添加到每个JPanel。 注意JLabels没有监听器。 如果我渲染这个并尝试点击一个JPanel,或者最终尝试点击JLabel,那么MouseAdapter会将这个注册为一个事件? 基本上我想JPanels注册事件和JPanels只显示文本顶部的JPanels。 此外,面板具有背景颜色。 如果JLabel“隐藏”注册事件,我该如何解决这个问题?

设置jLabel的打印尺寸并在打印件上放置jRadiobutton

我有一个带有图标的jLabel,我应该打印。 但是,我无法将jLabel的图标变成完整的大小。 以下是一些我认为影响打印尺寸的代码。 public static void printComponentToFile(Component comp, boolean fill) throws PrinterException { Paper paper = new Paper(); paper.setSize(8.3 * 72, 11.7 * 72); //here paper.setImageableArea(18, 18, 100, 300); //and here PageFormat pf = new PageFormat(); pf.setPaper(paper); pf.setOrientation(PageFormat.LANDSCAPE); BufferedImage img = new BufferedImage( (int) Math.round(pf.getWidth()), (int) Math.round(pf.getHeight()), BufferedImage.TYPE_INT_RGB); Graphics2D g2d = img.createGraphics(); g2d.setColor(Color.WHITE); g2d.fill(new Rectangle(0, […]

适合/缩放JComponent到正在打印的页面

我正在尝试缩放我的组件,以便它可以放在单个打印的页面上(纵向或横向) gDiagram.getComponent() 是我试图打印的组件(JPanel)。 以下是我如何基于如何打印单个JPanel的内容? /** * Prints the diagram. */ public void printDiagram() { PrinterJob pj = PrinterJob.getPrinterJob(); pj.setJobName(" Print Component "); pj.setPrintable(new Printable() { @Override public int print(Graphics g, PageFormat pf, int pageNumber) throws PrinterException { // TODO Auto-generated method stub if (pageNumber > 0) { return Printable.NO_SUCH_PAGE; } Graphics2D g2 = (Graphics2D) g; […]

如何在jtree中search特定节点并使该节点扩展。

我有一个100个节点的jtree。 现在我想search该树中的特定节点,并使该节点扩展..? 我该如何解决这个问题?

closures一个JFrame而不closures另一个?

我想同时显示两个(或更多) JFrames 。 当我closures其中一个(使用默认的closuresbutton)时,其他框架应该仍然可见。 我怎样才能做到这一点?

如何在Java中保存首选项用户设置?

例如,我有一个首选button的窗口。 我想这样做,当用户按下首选项button并检查他/她的适当的选项,然后按确定,它将保存首选项,然后当用户按下主窗口上运行时,它会相应地运行,以优先用户更改首选项窗口。 先谢谢你。