Tag: awt

在透明的JPanel上绘画时留下痕迹

我是Java中相对较新的图形程序员,这是一个我正在尝试的简单程序。 这是完整的代码:分为3个类。 第1类: import javax.swing.*; import java.awt.*; import java.awt.event.*; public class MyPanelB extends JPanel { int x=0; int y=0; public void paintComponent(Graphics g) { x=x+1; y=y+1; setOpaque(false); //setBackground(Color.cyan); g.setColor(Color.red); g.fillRect(x,y,x+1,y+1); } } 第2类: import javax.swing.*; import java.awt.*; import java.awt.event.*; public class MyFrameB implements ActionListener { MyPanelB p1; public void go() { JFrame f1= new JFrame(); […]

在java中为combobox分配键

我想在Swing中添加一个简单的JComboBox ,但我想为组合中的每个项目分配值。 我有以下代码 JComboBox jc1= new JComboBox(); jc1.addItem(“a”); jc1.addItem(“b”); jc1.addItem(“c”); 现在我想要的是,当点击combobox时,它应该相应地返回1,2和3而不是a,b,c。 有没有办法为combobox中的每个项目分配键值?

使用KeyListener更改字符串背景并在键释放时将其设置回来 键入Tutor计划

我已经存货了几个小时现在大声笑,没有乐趣,但这就是为什么..我有一个打字的应用程序,这是将按钮键盘的背景设置为不同的颜色,以免在打字时说黄色(如突出显示)按下按键每个按钮都会突出显示,当释放时它会将背景设置为白色..好吧,我的KeyListener我认为它没有任何焦点但我似乎失去了一些东西或没有看到它发生在哪里.. 我不得不注释掉添加监听器,因为给出了空指针的exception。 我真的希望有人可以看到我不能或我错过的东西..这是一个可运行的代码,这将使你们更容易理解发生了什么,并能够自己测试,看看我的意思.. import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Font; import java.awt.GradientPaint; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GridBagConstraints; import java.awt.GridBagLayout; import java.awt.RenderingHints; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.KeyEvent; import java.awt.event.KeyListener; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JTextField; import javax.swing.JTextArea; public class typeTutor extends JFrame implements KeyListener { //Individual keyboard rows String […]

paintComponent没有绘制到JPanel上

我正在做一个家庭作业,我应该制作一个程序,允许你绘制自定义的形状和线条,并在屏幕上移动它们。 最初我使用公共无效paint(g)进行绘画,但是当我打电话给重画时,形状闪烁。 因此,我切换到paintComponent(g) 。 然而,当我尝试绘制一个没有任何形状出现的形状时。 我相信这是因为它不是在JPanel上面绘画。 框架在3行BorderLayout有3个面板。 [Button JPanel] [Draw Box JPanel] [Coordinate Jpanel] 我想要绘制的面板是Draw Box面板,当然。 这是我目前的代码: import java.awt.BorderLayout; import java.awt.Color; import java.awt.Dimension; import java.awt.Graphics; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JMenuBar; import javax.swing.JPanel; public class Main extends […]

自定义形状旋转问题

我试图围绕其中心旋转自定义形状,但无法按预期获得结果。 我想要的是什么 * 形状应围绕其中心旋转而不会自行移动。 * 我的解决方案目前正在做的是围绕其中心旋转整个形状,每次旋转都会改变其位置。 我有多个形状,所以我创建了一个类来封装一个形状,其变换在下面的类中 public abstract class Shoe implements Shape, ShoeShape { // variable declaration /** * */ public Shoe() { position = new Point(); lastPosition = new Point(); } public void draw(Graphics2D g2, AffineTransform transform, boolean firstTime) { AffineTransform af = firstTime ? getInitTransform() : getCompositeTransform(); if (af != null) { […]

Java:旋转图像使其指向鼠标光标

我希望播放器图像指向鼠标光标。 我用这段代码来获取鼠标光标的位置: private int cursorX = MouseInfo.getPointerInfo().getLocation().x; private int cursorY = MouseInfo.getPointerInfo().getLocation().y; 注意:默认播放器图像指向上方

AlphaComposite.CLEAR无法正常工作

我在JLayeredpane上有两个JPanel。 其中一个显示pdf,重叠的一个有透明背景(我使用了setOpaque(false))。 现在我可以将图纸添加到透明面板,这样我似乎实际上是在注释pdf。 我想要一个橡皮擦工具来删除这些注释。 我尝试使用以下代码 @Override public void draw(Graphics2D g2) { g2.setPaint(Color.WHITE); g2.setComposite(AlphaComposite.getInstance(AlphaComposite.CLEAR)); g2.setBackground(new Color(255, 255, 255, 0)); g2.setStroke(new BasicStroke(thickness, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND)); g2.draw(path); } 其中path是由多行组成的形状。 现在,不是在先前的图纸上绘制透明线 ,而是绘制黑线 。 我哪里错了?

在Applet中嵌入JFrame

我找到了一个开源应用程序,它创建一个JFrame来显示一些内容。 我想将这个JFrame “嵌入”到applet中,因此Jframe中显示的所有内容都将显示在applet中 – 这可能吗? 谢谢你的帮助!

有什么方法可以从SWT_AWT桥接器中将Swing JFrame嵌入到AWT帧中?

我正在将Swing应用程序集成到Bioclipse / Eclipse插件中,并且由于Eclipse使用SWT,我必须以某种方式使用SWT_AWT桥。 问题是我从SWT_AWT网桥获得的起点是一个AWT框架,如下所示: java.awt.Frame awtFrame = SWT_AWT.new_Frame(composite); …(可以使用AWT组件填充),但情况是Swing应用程序在其主要JFrame组件中包含了大部分function。 现在,Swing JFrame无法按原样集成到AWT帧中。 已经与原始应用程序的开发人员讨论了原始Swing应用程序的重构。 只是想确保我们没有错过任何明显的解决方法吗?

任何人都可以帮我在第65行的线程“AWT-EventQueue-0”java.lang.NullPointerException中识别exception吗?

我一直收到运行时错误,说我在线程“AWT-EventQueue-0”中有一个exceptionjava.lang.NullPointerException它说的是[第65行],但对我来说它看起来像是一个基本的if语句。 我可以给一些背景知识。 该帧是从一系列帧中调用的,然后一旦选择了状态,就发送到包含状态AC城市的新帧。 仅当Alabama不是所选状态时,此当前帧才有效。 (我没有为其他状态创建其他帧,因此为什么它们被注释掉了)我可以把代码放到它应该调用的另一个帧上,如果有人需要它但是我认为这是很多代码要开始用。 在此先感谢大家的帮助。 import javax.swing.*; import java.awt.*; import java.awt.event.ActionListener; import java.awt.event.*; import java.io.*; import java.util.*; public class WetBulbByLocationFrameStates3 extends JFrame { public JLabel stateLabel; public JPanel statePanel = new JPanel(); public JComboBox stateBox; public String [] unitedStates = {“Alabama”, “Alaska”, “Arizona”, “Arkansas”, “California”, “Colorado”, “Connecticut”, “Delaware”, “District of Columbia”, “Florida”, “Georgia”, “Hawaii”, […]