Tag: awt

使用鼠标和图形缩放

我在JComponent中绘制一些曲线等,使用Graphics G(非2D)。 现在我想使用鼠标的滚轮来放大和缩小。 任何曲目? 我听说过BuferredImage?

为JPanel使用addMouseListener()和paintComponent()

这是我上一个问题的后续行动。 我尽可能地简化了事情,但它仍然不起作用! 虽然我使用getGraphics()获得了好处。 关于这里出了什么问题的详细解释非常受欢迎。 我怀疑这里使用addMouseListener()方法的方式有问题。 编辑完全重写了代码。 但仍然无法正常工作。 import java.awt.Color; import java.awt.Graphics; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; import javax.swing.JFrame; import javax.swing.JPanel; public class RunClass{ static MainClass1 inst1 = new MainClass1(); public static void main(String args[]){ JFrame frame1 = new JFrame(); frame1.add(inst1); frame1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame1.setTitle(“NewPaintToolbox”); frame1.setSize(200, 200); frame1.setLocationRelativeTo(null); frame1.setVisible(true); } } class MainClass1 extends JPanel implements MouseListener, […]

格式化jdialog框中的文本

我有一个JOptionPane: JOptionPane.showMessageDialog(null, text); 文字是一个刺痛: String text = “Hello world.” 我想要做的是改变文本的颜色,特别是单个单词,让我们说’你好’。 所以我试过的是: String t1 = “Hello”; String t2 = “world.” Font serifFont = new Font(“Serif”, Font.BOLD, 12); AttributedString as = new AttributedString(t1); as.addAttribute(TextAttribute.FONT, serifFont); as.addAttribute(TextAttribute.FOREGROUND, Color.red); JOptionPane.showMessageDialog(null, as+t2); 我不熟悉attributiontext(),这不会工作。 它这样做: “java.text.AttributedString@479c479cworld” 我缺少一步吗? 这不是正确的方法吗? 有什么建议么?

使用java.awt.BasicStroke动画化虚线

有没有办法使用java.awt中的BasicStroke生成动画虚线? 我的愿望是以与Photoshop的矩形品牌工具的动画线相同的方式运行虚线。

如何在Java应用程序中打印JTable对象

问题现在,一旦从数据库中获取数据并显示在scrollPane中嵌入的JTable对象“table”中,我们如何创建一个打印作业,以便能够在A3尺寸的纸张中打印所显示的表格? 我从数据库中获取数据的代码如下所示: try { Class.forName(“com.mysql.jdbc.Driver”); Connection con=DriverManager.getConnection(“jdbc:mysql://localhost/newb”,”root”,”pass”); Statement stat=con.createStatement(); ResultSet res=stat.executeQuery(“select * from table where name = ‘”+name+”‘”); ResultSetMetaData rsmd = res.getMetaData(); int colcount = rsmd.getColumnCount(); Vector columns = new Vector(colcount); for(int i=3; i<=colcount; i++) { columns.add(rsmd.getColumnName(i)); } Vector data = new Vector(); Vector row; // Store row data while(res.next()) { row = new Vector(colcount); […]

获得动态形状的鼠标检测

基本上我正在构建一张世界地图。 我知道如何有一个方形点击区域。 但是我想这样做,这样我就可以将这些国家放在一起,并能够点击这个国家。 现在很明显我不能使用方形点击区域,因为我有点重叠区域。 我可以通过查看每个像素的透明度来做到这一点吗? 即便如此,我不知道该怎么做?

AffineTransform.rotate() – 如何同时进行xlate,旋转和缩放?

我有以下代码(我的第一部分)想要绘制一个棋子上有一些棋子。 Image pieceImage = getImage(currentPiece); int pieceHeight = pieceImage.getHeight(null); double scale = (double)side/(double)pieceHeight; AffineTransform transform = new AffineTransform(); transform.setToTranslation(xPos, yPos); transform.scale(scale, scale); realGraphics.drawImage(pieceImage, transform, this); 也就是说,它获得了棋子的图像和图像的高度,它将该图像的绘图转换为该片段所在的正方形,并将图像缩放到正方形的大小。 Llet说我想把黑色棋子旋转180度。 在某个地方,我希望有类似的东西: transform.rotate(Math.toRadians(180) /* ?, ? */); 但是我无法弄清楚X和Y会放入什么。如果我什么也没放,那么这个图像很好地围绕着它的棋盘方块的0点旋转,将这个块倒置在广场的东北方向它应该是。 我已经猜到了x,y的各种其他组合,但没有运气。 我已经在使用平移把这个块放在正方形中,旋转变换需要另一个x,y围绕它旋转东西,但我不知道如何告诉变换旋转一个x,y并写入图像到不同的x,y。 有人可以帮助我使用旋转参数,还是指出一些能解释这些东西如何工作的东西? 我找到了一些不能解释它们是如何工作的事情的例子,到目前为止我还没有弄清楚如何根据我的情况改变它们…… 主要编辑:添加工作代码。 对不起,我不知道如何发布图片,请替换自己的。 当我跑下面的时候,我得到一个2×2的棋盘,左上角有一辆车,右下角是骑士。 如果我进入SmallChessboardComponent并从第一个旋转变换语句中删除注释delims,我会将原始位置的车辆颠倒并且骑士不会出现。 如果我改为从第二个转换语句中删除注释,则根本不会显示任何一个。 我正在寻找一种方法将这些碎片倒置在他们无论如何都会出现的广场上。 我想把每一块都画在板上; 我不希望代码翻转电路板。 主程序: package main; import java.awt.BorderLayout; import javax.swing.JFrame; import directredraw.SmallChessboardComponent; […]

从Java获得有效的屏幕大小

我想获得有效的屏幕尺寸。 即:没有任务栏的屏幕大小(或Linux / Mac上的等效项)。 我目前正在使用…… component.getGraphicsConfiguration().getBounds() …并根据操作系统减去默认任务栏的大小,但我希望这种方式即使用户已resize/移动任务栏也能正常工作。

Java旋转非方形JPanel组件

我试图旋转填充文本标签的GridLayout来模拟由于操作系统限制而导致的纵向视图。 它们所在的JPanel不是方形的,所以当旋转90度时,标签会根据JPanel的尺寸切断。 是否可以根据旋转调整布局大小以适应JPanel? 对此研究显示了许多旋转选项,但仅适用于方形JPanels。 为了进一步解释我的问题:当我旋转内部绘制的标签时,它们保持格式化为正常的x,y,我希望它格式化布局以适应90度旋转的x,y(所以基本上y和x都被翻转)。 目前我的网格的一部分在旋转后被切断。 此外,最终显示应适合当前JPnel中填写的所有13乘24个字母。 编辑:使用模糊的注释显示我需要在旋转后绘制,但这样做会裁剪网格并且不会填充回我喜欢的尺寸。 JPanel代码: import java.awt.Color; import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.GridLayout; import javax.swing.JLabel; import javax.swing.JPanel; public class Screen extends JPanel { private JLabel[][] labels = new JLabel[13][24]; private GridLayout layout; public Screen() { //setLocation(315,35); layout = new GridLayout(13, 24); layout.preferredLayoutSize(this); //setBounds(315, 65, 243, 350); setBounds(315, 65, 243, 350); setLayout(layout); […]

吃豆子打开/关闭嘴动画

我想用最简单的方法制作pacman开/关嘴动画。 这是我最近的代码:问题是,什么都没发生? package ordner; import java.awt.Color; import java.awt.Graphics; import javax.swing.JFrame; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; public class PacMan implements ActionListener { private JFrame frame; private DrawPanel panel; private void initGui() { frame = new JFrame(“Pacman”); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); panel = new DrawPanel(); frame.add(panel); panel.setBackground(Color.BLACK); frame.setSize(300, 300); frame.setVisible(true); } public static void main(String[] args) { PacMan pm = new […]