Tag: awt

如何在AWT中围绕文本绘制轮廓?

如何在AWT中的任何文本周围绘制轮廓,类似于这张图片?

RoundRectangle2D剪辑不是很流畅

我有一个JPanel,我想剪角,使它有圆角。 这就是我在做的事情。 ((Graphics2D)g).setRenderingHint(RenderingHints.KEY_ANTIALIASING,RenderingHints.VALUE_ANTIALIAS_ON); g.setColor(color); Shape s = new RoundRectangle2D.Double(0, 0, width, height, arc, arc); g.setClip(s); 请注意,我正在将clipping设置为RoundRectangle2D。 此外,我设置anti-aliasing仍然我的圆形边缘真的是锯齿状。 软剪辑示例此链接有一种方法可以为图像执行柔和的圆角边缘。 我如何将其应用于JPanel?

Java – CardLayout show()IllegalArgumentException

我有一个CardLayout show方法的问题 所以我宣布我的CardLayout并将其应用到我的JPanel CardLayout cl = new CardLayout(); panel.setLayout(cl); 然后我在CardLayout中添加了2个面板 cl.addLayoutComponent(panel, “menuScreen”); cl.addLayoutComponent(panel1, “gameScreen”); 然后我有一个JButton,当点击时,我显示gameScreen public void mouseClicked(MouseEvent e) { if(e.getSource() == (startGame)) scenechange.show(panel,”gameScreen”); } 唯一的问题是它没有进入我的gameScreen。 它给了我一个llegalArgumentException。 它说“线程中的exception”AWT-EventQueue-0“java.lang.IllegalArgumentException:CardLayout的错误父级”。 提前致谢

Java Swing JList,不能设置最小宽度

尝试简单地创建具有指定可见行数但具有最小宽度的JList。 似乎“setMinimumSize()”没有做任何事情…… import java.awt.*; import java.awt.event.*; import javax.swing.*; public class UserInterface { final static private int HEIGHT = 400; final static private int WIDTH = 650; public static void main(String[] args) { JPanel content = new JPanel(); String[] entries = { “Entry 1”, “Entry 2”, “Entry 3”, “Entry 4”, “Entry 5”, “Entry 6” }; DefaultListModel […]

使用Swing设置选定的文本颜色

我想显示一个用户选择颜色的选定文本。我的问题是我选择了一些文本并点击settextcolor它应用于所有文本未选择的文本。请给我..这是我的代码: public class SetTextColor extends javax.swing.JFrame { int i=0; JTextPane textPane; JScrollPane scrollPane; public SetTextColor() { initComponents(); } @SuppressWarnings(“unchecked”) // private void initComponents() { tabbedPane = new javax.swing.JTabbedPane(); jMenuBar1 = new javax.swing.JMenuBar(); jMenu1 = new javax.swing.JMenu(); Create = new javax.swing.JMenuItem(); SetTextColor = new javax.swing.JMenuItem(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); jMenu1.setText(“File”); Create.setText(“Create”); Create.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { […]

Java – 找到表示图像中所有颜色的颜色

我想要对图像进行采样以返回单个颜色,该颜色“看起来”是采样颜色的良好表示。 我试过两种方法: 取所有红色,绿色和蓝色的平均值并从中创建图像。 这很少产生看起来像是来自图像的颜色。 从图像中寻找“主导”颜色。 这需要从图像中找到最常见的颜色。 这是更好的,但例如,蒙娜丽莎产生深紫色。 这似乎捕捉到图像的较暗区域,但它忽略了顶角和皮肤上的所有较亮区域。 我想要一种代表黑暗区域和亮区的颜色。 Photoshop具有“平均模糊”,可为图像生成单一颜色。 对于蒙娜丽莎,这看起来像: 在这种情况下,每个季度代表蒙娜丽莎的四分之一。 这最终是我正在寻找的,但让我们从图像整体开始。 我很想知道Photoshop如何获得这些颜色。 谢谢!

多次调用paintComponent()

我有这两个类: public class Pencil extends JComponent implements MouseListener, MouseMotionListener{ Plansa plansa; Graphics g; public Pencil(Plansa newCanvas){ this.plansa = newCanvas; this.plansa.setFlagShape(false); } @Override public void mouseDragged(MouseEvent arg0) { plansa.setMouseDragged(arg0); this.plansa.setFlagShape(false); plansa.paintComponent(plansa.getGraphics()); } @Override public void mouseClicked(MouseEvent e) { } @Override public void mousePressed(MouseEvent arg0) { plansa.setMousePressed(arg0); } @Override public void mouseReleased(MouseEvent arg0) { // TODO Auto-generated […]

如何在Choice上创建一个函数来改变其他Choice的内容

我已经尝试了ActionListener和ItemListener,但它不会工作,我也尝试搜索可能适用它的代码和方法,但我只是发现它可能是因为JCombobox更受欢迎我是如此。 这是Java程序的forms。 import javax.swing.*; import java.awt.*; import java.awt.event.*; import javax.swing.event.*; public class HarderCode extends Frame { Choice Cb1; Choice Cb2; Choice Cb3; Label lbl1; Label lbl2; Label lbl3; Label lbl4; Label lbl5; TextField txt1; // TextField txt2; Button btn1; public HarderCode(){ btn1 = new Button(” Click Me ! To Convert “); Cb1 = new Choice(); […]

将BufferedImage像素数据转换为可读输出?

我正在尝试制作一个程序,将旧GBA游戏的地图划分为16×16图块,保存每个图块,然后将每个抓取图块的原始图像数据与另一个保存图块列表进行比较,并自动确定它是否是相同的图像。 到目前为止,我已设法将地图划分为16×16图块,自动将每个16×16图块保存到新图像文件中,然后将所有这些图像文件作为BufferedImages加载到数组中。 public TileSorter() { for (int a = 0; a < 1269; a++) { try { img[a] = ImageIO.read(new File("img" + a + ".jpg")); } catch (IOException e) {} System.out.println("img" + a + ".jpg loaded into Array."); } } 我现在要做的是分析一个数组中每个tile(一个BufferedImage)的原始数据,并确定它是否与来自另一个数组的任何已保存的BufferedImage tile相同。 我环顾四周寻找答案,并尝试了getRGB()方法和getData()栅格方法: img[a].getRGB(0,0,16,16,rawImgData[a],0,0); rawImgData[a] = ((DataBufferByte) img[a].getRaster().getDataBuffer()).getData(); 问题是:从我所看到的,从这些方法返回的byte []和int []数据对于任何两个完全相同的图片是不一样的。 我需要一种方法将图像数据转换为原始int []或byte []数据,可用于比较两个完全相同的图片。 (IE;如果两张图片都只是一个16×16的黑色像素arrays,它们应该输出相同的getRGB()或getData()值。)是否有一种方法可以将这些BufferedImages转换为原始图像数据容易相互比较? […]

必须在EDT中调用AWT类中的所有方法,即非Swing方法吗?

我最近了解到Sun的/ Oracle最新指南说,任何Swing对象(包括构造函数)的Swing方法都不能在EDT之外调用。 相同的严格标准是否也适用于所有“视觉”AWT课程? 如果没有,**对他们来说是什么规则? 后来 re Swing和EDT:2009年的讨论。 http://www.velocityreviews.com/forums/t707173-why-does-jdk-1-6-recommend-creating-swing-components-on-the-edt.html 引用:“除了实际的线程安全性以及可见性和同步等相关问题之外,我认为还有软件问题。Swing组件通常具有某种类型的”监听器“,而这些监听器设计为在EDT上执行。 由于这些侦听器是异步的并且响应事件(如属性更改),因此在构建GUI时可能会触发这些侦听器。 结果是,当您在主线程中构建时,某些侦听器正在EDT上执行,并且一些侦听器也可能在其他线程上运行(因为侦听器混淆并在错误的线程上触发)。 结果是一个巨大的不可预测的混乱。“ 也许他们不知道他们在谈论什么……但目前我采取的是“更安全而不是抱歉”的方法。 Potochkin, http: //weblogs.java.net/blog/alexfromsun/archive/2006/02/debugging_swing.html似乎也认为我们熟悉后来更严格的规则