Tag: paint

Java Swing:从与JLayeredPane中的其他JPanel重叠的JPanel清除自定义绘图

我有一个JLayeredPane包含三个JPanels,其中两个重叠,我正在绘制形状。 重叠的两个JPanel中的一个需要将所有绘制的形状清除,而不会影响绘制到其下的JPanel的形状,从屏幕上消失。 目前我正在使用这样的东西: Graphics g = pane2.getGraphics(); g.clearRect (0, 0, 1000, 1000); 但这不仅清除了绘制到pane2的所有内容,还清除了下面的pane1。 所以我的问题是:有没有办法清除绘制到一个JPanel的所有内容而不影响任何绘制到JPanel下的内容?

Canvas对象未显示,但位置在Java Applet中正确更新

我的基本弹跳球Applet应该根据loc变量中的值移动一个球,但没有任何显示。 打印出来的地方显示数字/数学背后移动它并且跳出边界确实正常工作,但没有任何显示。 在线查看示例我不明白为什么我的绘图/绘图代码没有按预期工作。 这就是我所拥有的,问题可能集中在Ball对象的中间位置。 我发布了大部分程序,因为如果有人会运行它,它会编译/运行。 import java.awt.*; import java.applet.*; import java.awt.event.*; public class Bounce2 extends Applet implements ActionListener, AdjustmentListener, Runnable { //runtime variables boolean running = false; boolean kill = false; //buttons Button runbutton = new Button(“Run”); Button pausebutton = new Button(“Pause”); Button quitbutton = new Button(“Quit”); //text Label speedlabel = new Label(“Speed”); Label sizelabel […]

编程创建形状并在控制台上显示它们

我得到了如下的小作业。 能否请您详细说明如何实现这一点 编写一个简单的结构化程序和简单的oo程序,实现显示形状function。 你的程序应该简单地打印(控制台)数字,如果形状,然后要求每个形状显示自己,这也将导致生成一行输出到控制台,每个形状一个。 对于主程序来说,在对该集合进行排序和显示形状之前创建一组形状是完全可以的。 你的程序应该支持圆形,三角形和正方形,但应该使用多态,这样主程序就不知道它正在处理的形状类型,而是统一处理形状 我创建了一个程序来创建如下所示的形状,但我不确定如何创建所提到的形状并将它们存储在集合中并迭代以在控制台上显示这些形状。 我被告知不要使用数据库来存储形状 import java.awt.Color; import java.awt.Graphics; import javax.swing.JApplet; public class DrawShapes extends JApplet { public void paint(Graphics g) { g.setColor(Color.RED); // drawing string g.drawString(“Hello World!”, 100, 100); // drawing rectangle g.draw3DRect(120, 120, 120, 120, true); g.setColor(Color.blue); g.fill3DRect(120, 120, 120, 120, true); // drawing circle g.drawOval(240, 240, 120, 120); g.setColor(Color.CYAN); […]

使用面板消息/解决方法时,Java 1.5 JOptionPane绘制错误?

我在一个针对Java 1.5的应用程序中有一个带有自定义消息面板的JOptionPane。 该面板包含JTextField等。 每20个调用左右,对话框中的任何内容都不会被绘制(甚至没有OK / Cancel按钮)。 如果我将对话框从屏幕拖出并再次返回以强制重新绘制,则组件可以按预期显示,除了绘制问题之外,组件响应正常。 这是我可以展示这个bug的最小例子: public class BugTest { public static void main(String args[]) { SwingUtilities.invokeLater(new Runnable() { public void run() { // The text field needs to be wrapped in a panel for the bug to show up. JPanel messagePanel = new JPanel(); // A JLabel won’t exhibit the bug, but […]

将Java图形用于applet时,可以增加线条粗细吗? 我不相信BasicStroke有效

我无法调整线条粗细。 我可以在图形中执行此操作,还是必须在Graphics2D中执行此操作? 如果是这样,我该如何改变程序以使其运行? 谢谢! import java.applet.Applet; import java.awt.*; public class myAppletNumberOne extends Applet { public void paint (Graphics page) { //Something here??? } }

如何获得paint / paintComponent生成的图像?

我有一个快速的问题。 如何获取JComponent.paint或paintComponent生成的图像? 我有一个JComponent,我用它作为’工作区’,我已经覆盖了paintComponent方法到我自己的方法。 问题是我的工作区JComponent也有子项,它们有自己的paintComponent方法。 因此,当Swing渲染我的工作区组件时,它会渲染工作区图形,然后渲染其子图形。 但是,我想获取我的工作区组件生成的图像(包括工作区图形和子图形)。 我怎么做? 我试图通过使用我自己的Graphics自己调用paintComponent / paint-method,但我刚刚返回了一个黑色图像。 这是我尝试过的; public void paintComponent(Graphics g) { if (bufferedImage != null) { g.drawImage(bufferedImage, 0, 0, this); } else { g.setColor(Color.WHITE); g.fillRect(0, 0, bufferedImage.getWidth(), bufferedImage.getHeight()); } } public BufferedImage getImage() { BufferedImage hello = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_ARGB); Graphics g = hello.getGraphics(); paintComponent( g ); return hello; […]

使用MouseDrag方法拖动图像

我正在尝试编写可以使用mouseDragged方法拖动图像的位置,但我似乎无法使用当前代码成功执行此操作。 我的目的是确保当我对applet中的每个图像进行拖动时,它会跟随光标。 /* Using drag mouseEvent, all objects in the app can be dragged… */ package finals_two; import java.applet.*; import java.awt.*; import java.awt.event.*; /* 10/16/2015 * @author michael.pabilona */ public class Finals_Two extends Applet implements MouseMotionListener { int hei, wid, xCoordinate, yCoordinate; Image leftReceiver1, leftReceiver2, leftReceiver3; Image rightReceiver1, rightReceiver2, rightReceiver3; Image leftSpiker, rightSpiker, center, setter; […]

如何在pdf中导出一对一的JTable

可能重复: 为什么JTable标题没有出现在图像中? 在Panel上绘制JTable行和列 我正在编写一个报表应用程序,我必须以报表的forms导出JTable。 但是当我尝试在PDF上直接绘制JTable时,它不会显示第一行和列边框。 为此我尝试使用默认颜色网格左上边框。 这给了我一个更深的PDF格式。 但是,当尝试使用颜色填充任何特定单元格并将其导出为PDF输出时,所有网格线都是不可见的。 SimpleTableDemo.java : package com.swing.table; import java.awt.Color; import java.awt.Component; import java.awt.Dimension; import java.awt.Graphics2D; import java.awt.GridLayout; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.FileOutputStream; import java.util.HashMap; import java.util.Map; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.border.LineBorder; import javax.swing.table.TableCellRenderer; import javax.swing.table.TableColumn; import javax.swing.table.TableColumnModel; import com.itextpdf.text.Document; import com.itextpdf.text.PageSize; import […]

Java Swing重/慢paintComponent – 任何建议?

我正在制作一个滚动的2D地图/平铺游戏。 每个图块(存储为图块[21] [11] – 每个图总共231个图块)最多可包含21个值(存储为int [3] [7])。 全屏时我一次看到大约8张地图。 平均而言,每个地图绘制大约需要0.03秒(使用System.nanoTime找到)。 问题是,只要屏幕上有多个地图,Swing事件轮询就会明显变慢。 这有什么解决方案吗? 我无法一次绘制地图以将其保存为图像,因为它具有涉及移动演员的透明度,因此它变化太频繁。 另外我不认为我可以在paintComponent中调用一个线程来绘制地图而不会出现故障,但我并不积极。

我的GUI中的原点大约是25/26像素

我的GUI上的原点(0,0)向上移动了大约25/26像素。 所以我的GUI的左上角似乎代表0,25或0,26。 我正在使用双缓冲区来绘制内容。 基本上,每当我尝试在0,0​​的缓冲区中绘制内容时,它就会出现在屏幕外。 例如,下面是我尝试生成的棋盘图案的屏幕截图,从0,0开始。 虽然水平看起来很好,但请注意顶部的切碎棋盘。 高度为480,可以被32整除,因此棋盘图案应该完美填充。 这是我的代码(剪下不相关的部分): public class Dekari_gameGUI extends JFrame implements KeyListener { // Resources private final String imagePath = “Resources/Images/”; private final String spriteSheetPath = imagePath + “Sprite Sheets/”; private final String soundPath = “Resources/Sounds/”; private final String dataPath = “Resources/Data/”; private BufferedImage[][] sprites; private Timer playerMovementTimer = new Timer(); //Game […]