我对Java不熟悉,所以我正在尝试一些事情。
我正在玩Java布局,特别是使用BorderLayout的嵌套面板。
我的问题是,我无法绘制嵌套面板。我可以画到主面板,但不能画嵌套在其中的面板。
如果你能告诉我哪里出了问题,我会非常高兴。
这是我的主要代码:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class GUI extends JFrame{
public GUI()
{
setSize(600,600);
这是主面板。
JPanel pan1 = new JPanel();
pan1.setLayout(new BorderLayout());
pan1.setPreferredSize(new Dimension(200,200));
JLabel label = new JLabel("Panel 1");
pan1.add(label);
然后创建两个嵌套面板,并将其添加到主面板中。
JPanel pan2 = new JPanel();
pan2.setBackground(Color.YELLOW);
pan2.setPreferredSize(new Dimension(200,200));
JPanel pan3 = new JPanel();
pan3.setBackground(Color.YELLOW);
pan3.setPreferredSize(new Dimension(200,200));
这里我称之为在屏幕上绘制形状的类。
draw drawingShape = new draw();
这里是问题,因为我无法绘制嵌套面板的形状。
pan2.add(drawingShape);
然而,我可以把它画到这个面板上,这是主要的一个。
pan1.add(drawingShape);
我将两个面板插入主面板。潘1。添加(pan2,BorderLayout.NORTH);潘1。添加(pan3,BorderLayout.SOUTH);
getContentPane().add(pan1);
setVisible(true);
}
public static void main(String args[])
{
new GUI();
}
}
以下是创建完全精细形状的代码:
import javax.swing.*;
import java.awt.*;
import java.awt.image.BufferedImage;
public class draw extends JPanel{
public void paint(Graphics g) {
Image img = createImage();
g.drawImage(img, 20,20,this);
}
private Image createImage(){
BufferedImage bufferedImage = new BufferedImage(200,200,BufferedImage.TYPE_INT_RGB);
Graphics g = bufferedImage.getGraphics();
return bufferedImage;
}
}
代码确实可以编译,非常感谢您的帮助。
当做
自定义绘制是通过覆盖paintComponent()
方法而不是paint()方法来完成的。另外,不要忘记调用super。paintComponent()。
有关更多信息和示例,请阅读Swing自定义绘画教程中的部分。
以下是创建完全精细形状的代码:
我不知道怎么会好。据我所知,它没有任何作用。首先,不要在paintComponent()方法中创建图像。每当Swing确定组件需要重新绘制时,就会调用此方法。其次,代码所做的就是创建一个空白图像。
如果您仍然有问题,请阅读本教程并发布实际的SSCCE。
问题内容: 我有一个主JPanel,它实现Scrollable并使用BorderLayout。它包含一个NORTH只读JEditorPane,一个带有FlowLayout的CENTER JPanel(可动态添加JButton)和一个SOUTH JLabel(均按该顺序添加)。当将许多JButton添加到CENTER JPanel时,这些按钮将缠绕到下一行:问题是CENTER JPanel占用的垂直
我被困在将嵌套JS与宇宙数据库核心SQL API集成上。我知道有一个用于 Cosmos DB 的模块(https://github.com/nestjs/azure-database),但我需要数据架构来支持嵌套的 json,如下所示: 我认为@nestjs/azure-database不支持这一点(或者我可能错了),因为当我检查他们的示例和quickstart时,没有这样的json模式的示例。
问题内容: 我正在编写一个具有许多不同视图的程序。其中之一是图形密集型(显示互连的图形)。其他人只显示较小但复杂的图表。 我发现主视图的绘制时间很长(甚至只是绘制当前可见的区域),并且在绘制时,界面的其余部分变得很慢。 我的问题是,我可以创建一个新线程来处理绘画吗?如果是这样,是否会导致性能提高,我怀疑它不会。我尝试了以下方法: 创建一个抽象类ThreadPaintablePanel,我的复杂视图
我在想哪里出了问题。我以前做过这个,但由于某种原因,这次我不能让它工作。 我用Netbeans设计了这个项目。最相关的部分是initTiras方法,它被认为可以绘制一些东西,但它没有。我包含了NetBeans生成的代码。 这是代码的最简化版本,但它仍然没有绘制任何内容。 所以我在项目中创建了一个新的框架。然后我把一个JPanel放进去(在设计模式下)。JPanel称为ElPanel和JFrame
我正在寻找HAL中嵌套_embedded如何使用Spring HATEOAS API编程的例子。最佳实践是什么? 下面是我想要实现的一个例子:
绘制面 点击菜单栏或底下快捷工具栏中的“绘制面”按钮,按照弹出对话框进行线的绘制。 双击完成面的绘制后弹出属性信息对话框,可以在“说明”栏中查看并修改对于该面的说明。 在“空间信息”栏修改面的节点坐标,也可以直接在三维球上选中面上的节点移动设置。 在“样式”栏,选中自定义面样式进行修改面的填充颜色、不透明度、纹理贴图以及显示轮廓线的风格等样式