通过从内部的Jpanel点击来处置JFrame
我正在尝试通过单击一个位于我想关闭的Jframe上的Jpanel上的按钮来处理我的jframe. 我试图在Jframe类上进行静态方法,但是我的IDE告诉我,这不会发生. 有人想解决方案吗? 谢谢! 解决方案 尝试以下方法: public class DisposeJFrame extends JFrame{ JPanel panel = new JPanel(); JButton button = new JButton("Dispose JFrame"); public DisposeJFrame(){ super(); setTitle("Hi"); panel.add(button); add(panel); pack(); button.addActionListener(new ActionListener(){
8 2024-04-05
编程技术问答社区
有什么简单的方法可以在不放置图像的情况下将缓冲图像设置为单一的彩色像素?
所以我只想将缓冲映像设置为单个背景颜色,有办法做到这一点吗? 解决方案 您的意思是用背景颜色填充缓冲图吗?如果是这样,这是有关如何执行此操作的示例: import java.awt.Color; import java.awt.Graphics2D; import java.awt.image.BufferedImage; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.SwingUtilities; public class TestBufferedImage { private BufferedImage buffer; protected BufferedImage getBuffer() { if (buffer == null) { buffer
10 2024-04-04
编程技术问答社区
Java中的可扩展图像
我希望在我的Java应用程序中使用一些图像.这些图像将使用g.drawImage()绘制到我的jpanel上. JPANEL可以解析,并且图像应随着jpanel的增加/减小的尺寸 缩小 的缩小. 两个问题: 哪种图像格式最适合这种类型的可扩展图像?例如,在此应用程序中,大小100x100的图像可以缩放到大小30x30或10x10或300x300的图像中. 如何编写代码进行此缩放? 解决方案 看看 java:java:java:维持jpanel背景图像的纵横比 我还会阅读图像的危险. rel =" nofollow noreferrer"> java-image-scaling (我没有亲自使用过它,但我听说过它的好消息). 关于图像格式.我怀疑这真的会带来很大的不同,质量将取决于原始图像的质量.尝试使用大图像并将其缩小,而不是试图扩大小图像. 其他解决方案 没关系,我不认为. (如果您希望图像在扩展时不要变得模糊,请查看矢量图像). 您
16 2024-04-04
编程技术问答社区
将一个JP面板画到一个缓冲图像上,或将其打印出来,而不用先渲染到屏幕上。
想象这个...一个程序gui jframe,在2,东西方分裂.第一个jpanel只是打印预览屏幕. Jframe的东侧是用户可以创建1 2或3尺寸图像的地方.用户单击"添加"按钮,右侧的定义图像转到左侧的面板.因此,如果用户单击"添加" 3次使用不同尺寸的图像,则面板使用Flowlayout来整理左侧添加的面板图像. 运行此代码时,您可以看到我想要的东西的想法.真的,很好的是创建所有这些外屏幕并称其为Mainpanel.然后,让PrintPreview扩展Mainpanel并将其缩小为屏幕视图.并让可打印的方法将Mainpanel涂成印刷方法,这将是正确的尺寸. 所以我的问题... - 您可以在屏幕上渲染jpanel吗? - 有一种更好的方法来做我想做的事情,我流动地解决了我想要的东西,所以除非有我不知道的东西,否则jpanel似乎是答案. 好的,现在如图所示.我已经构建了一些可以作为SSCCE的代码. 我尝试在新的Java论坛上问这个问题,他们只是没有响应,我不
12 2024-04-04
编程技术问答社区
JScrollPane中的java巨大的BufferedImage
我需要将巨大的图像(bufferedimage供颜色等)安装到JSCrollpane派生的类中.直到那里没什么困难的. 图像是对A3材料样本的JPG扫描,其大小为13030x20840像素,24磅和重量12MB,磁盘上的重量为12MB-> RAM中约800MB. . 我将缓冲图像嵌入了jpanel中,该jpanel作为卷轴的视图. 当我尝试滚动/拖动图像时,它需要几秒钟的响应,因此它不是很方便的. 我需要您的帮助才能知道我该怎么做才能渲染Scrollpane的滚动和图像尽可能平滑和反应性,但是我很容易地发现,使用这样的图像,这是不可能的. 我尝试了许多选项,例如双重缓冲. 如果需要通过其他东西来更改缓冲图,我可以接受任何解决方案. 解决方案 所以,我们有一个大13,030 x 20,840像素图像. 如果我们将此图像分解为256 x 256像素瓷砖,我们将获得一个遍布51个瓷砖的瓷砖集,下降了82个瓷砖.行和列中的最后一个瓷砖将是部分图像,因为
16 2024-04-04
编程技术问答社区
当从Jpanel(没有JFrame)创建一个BufferedImage时,我是否也可以使用一个布局管理器?
我试图在不使用jframe的情况下从jpanel创建一个bufferedimage.昨天,我终于能够在这个社区的帮助下将图像出现(见下文),但是现在我遇到了一些布局麻烦. BufferedImage上的所有组件都开始在0,0绘制,而不是遵循布局管理器.有人知道这个问题的解决方案吗? 昨天的问题:我可以从jpanel创建一个bufferedimage,而无需在jframe中渲染吗? 在下面的代码中,两个标签将在图像的左上角相互覆盖. import java.awt.Color; import java.awt.Dimension; import java.awt.FlowLayout; import java.awt.image.BufferedImage; import javax.swing.ImageIcon; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing
22 2024-04-04
编程技术问答社区
清除带有底层图像的图形部分
我正在制作一种"游戏",其中玩家必须单击屏幕周围弹跳的图像.捕获是屏幕在黑暗中,鼠标光标是一个"手电筒",它在其周围"点亮"一个小圆圈. 我在一个类中有一个JFrame由: 组成 public class GameFrame { public static void main(String[] args) throws IOException { Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); JFrame jf = new JFrame("Flashlight Game"); jf.setVisible(true); jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); jf.setSize(d); jf.setLocationRelativeTo(null); GamePanel gp = new
14 2024-04-04
编程技术问答社区
我可以从Jpanel中创建一个BufferedImage而不在JFrame中进行渲染吗?
是否可以在jframe中首先呈现jpanel创建一个缓冲图?我在任何地方都搜索了我能想到的,找不到答案.谁能帮忙? 这是一些示例代码.如果我不删除jframe代码,我的bufferedimage是空白的. test(){ // JFrame frame = new JFrame(); JPanel panel = new JPanel(); Dimension dim = new Dimension(50,50); panel.setMinimumSize(dim); panel.setMaximumSize(dim); panel.setPreferredSize(dim); JLabel label = new JLabel("hello"); panel.add(label); // frame.add(panel); //
14 2024-04-04
编程技术问答社区
.drawLine()的问题和缓冲的图像
我有一个油漆程序,我已经完成了所有按钮和滑块,但是我对实际绘画本身有问题.当我将光标拖到屏幕上,而不是不间断的线路时,我几乎会得到我不想要的虚线.这是JPanel和BufferedImage中的MouseListener的代码: public void mouseDragged(MouseEvent e) { Graphics g=buffered.getGraphics(); g.setColor(mycol); Graphics2D graph=(Graphics2D)g; BasicStroke stroke=new BasicStroke(30); graph.setStroke(stroke); // g.fillRect(xcor, ycor, 20, 20); / /varx=e.getX();
16 2024-04-04
编程技术问答社区
将JP面板导出为图像
所以我一直在尝试将我在JPanel上绘制的图像导出到图像中.我一直在使用这种方法: BufferedImage image = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_RGB); Graphics2D g = image.createGraphics(); paint(g); try { ImageIO.write(image, "png", new File([location goes here]); } catch (IOException e) {} 我在预期的位置获得了图像,但我得到了jpanel显示的内容的压缩版.如果我也尝试导出BMP,也会发生同样的情况.有没有办法从JPanel导出像素完美的图像?预先感谢. 解决方案 需要根据其要求布置面板.如果面板尚未在屏幕上实现,则可能不会以您期望的方式渲染 以下示例假设未在屏幕上显示面板... setSize(g
20 2024-04-04
编程技术问答社区
如何在Jpanel或JFrame上绘制图像?
如何将图像绘制到jpanel或jframe,我已经阅读了Oracle的教程,但我似乎无法正确处理.我需要在特定的一组坐标上显示图像" BeachRoad.png".这是我到目前为止所拥有的. public class Level1 extends JFrame implements ActionListener { static JLayeredPane EverythingButPlayer; static Level1 l1; public Level1() { EverythingButPlayer = new JLayeredPane(); BufferedImage img = null; try { img = ImageIO.read(new File("BeachRoad.png")); } catch (IOException e) { } Graphics g = img.getGraphi
16 2024-04-04
编程技术问答社区
在JPNEL内旋转缓冲图像(BufferedImage
我试图旋转BufferedImage并在JLabel内显示(JPanel内部).当前的结果在黑色背景下会产生一个白色正方形的10度,但图像不存在正方形内.我知道myPicture不是空白,因为myPicture不旋转时myPicture在JPanel内部都正确显示. 这是代码: int w = myPicture.getWidth(); int h = myPicture.getHeight(); BufferedImage newImage = new BufferedImage(w, h, myPicture.getType()); Graphics2D graphic = newImage.createGraphics(); graphic.rotate(Math.toRadians(10), w/2, h/2); graphic.drawImage(myPicture, null, 0, 0); picLabel.setIcon(new Ima
22 2024-04-04
编程技术问答社区
JComponents不能以图片背景显示?
我的组件没有出现.我该如何解决? 代码: import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import javax.imageio.ImageIO; import javax.swing.*; public class login implements ActionListener{ JTextField gusername; JTextField gpassword; static String username; static String password; void logini() throws IOException
14 2024-04-04
编程技术问答社区
在java中动态地改变TitledBorder的颜色
我已经创建了标题为border并将其设置为jpanel. JPanel panel = new JPanel(); panel.setBorder(javax.swing.BorderFactory. createTitledBorder(null, "title", javax.swing.border. TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border. TitledBorder.DEFAULT_POSITION, null, java.awt.Color.red)); 现在我想更改边界标题文本的颜色;如果可能的话,边界线.我看到何时通过方法titledborder.setTitleColor(theColor);和revalidate()和repaint()更改边框的颜色;形式的面板不受影响.我还创建了thiledBorder的新实例,并将其分配给面板;但无效.是否有必要续订面
12 2024-04-02
编程技术问答社区
如何为有边框的JPNEL添加填充物
我想将填充物添加到一些JPanel s.我找到了这个答案: https://stackoverflow.com/a/5328475/1590323 它对没有边框的面板工作正常.但是,我该如何处理已经有边界的面板? (在这种情况下为a TitledBorder) 我尝试了: JPanel mypanel = new MyPanel(); // Panel that I am going to add a TitledBorder to, but needs padding mypanel.setBorder(new EmptyBorder(10,10,10,10)); JPanel mypanel_container = new JPanel(); TitledBorder border = BorderFactory.createTitledBorder(BorderFactory.createRaisedBevelBorder(), "My panel"); border
26 2024-04-02
编程技术问答社区
像在火狐浏览器中那样做一个带有标题的JP面板边框
我想在我的应用程序中进行选项对话.在此对话框中,我想将某种区域包围着边框和标题. Firefox中我想要的一个例子: 我该如何在Java中做类似的事情? 解决方案 在这里您可以找到所需的所有信息. 基本上,您可以使用边框工厂使用Swing中的可用类型来创建边框: Border lineBorder = BorderFactory.createLineBorder(Color.black); JPanel panel = new JPanel(); panel.setBorder(lineBorder); 您还可以定义实施边界界面.
18 2024-04-02
编程技术问答社区
具有背景图像和正常功能的Java-JPanel
我一直在寻找制作JPanel能够具有图像背景的努力.我知道这里有很多信息(​​示例1 和示例2 ).这些都不是我要寻找的. 我正在寻找的是一种方法,即在维护其他所有内容的同时,在JPanel上设置背景图像的函数或功能.我现在遇到的问题是,我有一些扩展JPanel的类,当我更改它们以扩展新的ImagePanel类时,构造函数失败(显然,参数是不同的).我有一个用于super( new BorderLayout() );的文件之一的构造函数,到目前为止,我可以使其运行的唯一方法是抛弃布局或背景图像.我不能一起工作. 这是最新的绝望尝试: import java.awt.*; import javax.swing.JPanel; class ImagePanel extends JPanel { private Image img; public ImagePanel(Image img, LayoutManager layout) { this.img =
16 2024-03-27
编程技术问答社区
嵌套的JPNEL中的背景图片?
我有一个jpanel,其中包含2个jpanel.我想在左侧(左侧)和右侧(RB)上添加一个背景图像(rb). 但是我得到的结果是 https://i.stack.imgur.com/mkq5s.jpg /p> 我想要的结果 https://i.stack.imgur.com/fiers.com/fiers.jpg public void paintComponent(Graphics g) { //this.paintComponent(g); if(wdimage != null) g.drawImage(wdimage,0,0,800,800,rB); //(image,location x, location y, size x, size y) } RB面板正在阻止图像,我想要的是在JPanel上显示图像,并在JPANEL顶部添加一些Jlabels和文本字段,然后在. . 解决方案 这里出现没有任何问题,看看: im
16 2024-03-27
编程技术问答社区
带有背景图像的JFrame和一个Jpanel
我有以下内容: public class Frame { public static void main(String[] args) { JFrame frame = new JFrame("Frame Demo"); Panel panel = new Panel(); frame.add(panel); frame.setBounds(250,100,800,500); frame.setVisible(true); } } public class Panel extends JPanel { JButton singlePlayerButton; JButton multiPlayerButton; BufferedImage image; Gui gui; public Panel() { gui = new Gui(); add(gui); try
24 2024-03-27
编程技术问答社区
有图像背景的JPNEL
如何将图像背景放在jpanel上? JPanel pDraw = new JPanel(new GridLayout(ROWS,COLS,2,2)); pDraw.setPreferredSize(new Dimension(600,600)); //size of the JPanel pDraw.setBackground(Color.RED); //How can I change the background from red color to image? 解决方案 其他解决方案 将Image加载到ImageIcon中并显示在JLabel>中可能是最容易的,但是: 要直接将图像"绘制"到jpanel,请将jpanel的paintComponent(Graphics)方法覆盖为以下内容: public void paintComponent(Graphics page) { super.paintComponent(page); page.
10 2024-03-27
编程技术问答社区