我在想哪里出了问题。我以前做过这个,但由于某种原因,这次我不能让它工作。
我用Netbeans设计了这个项目。最相关的部分是initTiras方法,它被认为可以绘制一些东西,但它没有。我包含了NetBeans生成的代码。
这是代码的最简化版本,但它仍然没有绘制任何内容。
所以我在项目中创建了一个新的框架。然后我把一个JPanel放进去(在设计模式下)。JPanel称为ElPanel和JFrame LaFrame。
以下是主要类:
package ElPackage;
public class Resistores {
public static void main(String[] args) {
LaFrame UnaFrame = new LaFrame();
UnaFrame.setVisible(true);
}
}
在LaFrame类内部:
package ElPackage;
import java.awt.Color;
import java.awt.Graphics;
public class LaFrame extends javax.swing.JFrame {
public LaFrame () {
initComponents();
initTiras();
}
public void initTiras() {
Graphics LasG = ElPanel.getGraphics();
LasG.setColor(Color.WHITE);
LasG.fillRect(10, 10, 30, 30);
}
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
ElPanel = new javax.swing.JPanel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setResizable(false);
ElPanel.setBackground(new java.awt.Color(51, 0, 51));
ElPanel.setForeground(new java.awt.Color(255, 255, 255));
javax.swing.GroupLayout ElPanelLayout = new javax.swing.GroupLayout(ElPanel);
ElPanel.setLayout(ElPanelLayout);
ElPanelLayout.setHorizontalGroup(
ElPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 400, Short.MAX_VALUE)
);
ElPanelLayout.setVerticalGroup(
ElPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 300, Short.MAX_VALUE)
);
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(ElPanel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(ElPanel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
pack();
}// </editor-fold>
// Variables declaration - do not modify
private javax.swing.JPanel ElPanel;
// End of variables declaration
}
重写elPel的
使用java命名约定——变量应该从小写字母开始。
问题内容: 如何在没有类的情况下绘制对象(扩展了)?我找到了方法,但它没有绘制对象。 问题答案: 如果要更改组件的绘制方式(添加矩形),则需要在该组件中重新定义。在你的代码中,你正在使用 。 你不应该调用组件。你所做的任何绘画(退还给你的绘画)都是暂时的,并且在Swing下次确定需要重新绘画组件时将丢失。 相反,你应该覆盖或的)方法,并使用接收到的对象作为参数在此方法中进行绘制。 检查此链接以进一
我正在制作一个简单的2D游戏。每次滴答,我都想检查一个效果队列,该队列将启动一个线程以获得特定效果(淡入淡出过渡、音频淡入淡出等)。例如,在菜单屏幕上按“播放”将向该队列添加“淡出”消息,该消息将被处理并启动一个线程,以在我的游戏面板上绘制一个黑色矩形,并增加阿尔法值。 我重写了绘制组件(),并将我的图形对象发送到我的游戏状态管理器,它将图形对象传递到当前状态的绘制()。我目前没有一个效果状态(也
我正在做一个选择工具,我已经带来了这些解决方案,在第一次使用J面板getGraphics方法,我在鼠标被拖动的任何地方绘制一个椭圆形,在第二次我覆盖了油漆组件方法来绘制椭圆形。 当我执行第一个时,拖动鼠标会闪烁,绘图很差,而第二个方法运行完美。为什么会发生这种情况?,如果我在第一个解决方案中退出重新绘制,它会绘制椭圆形并且不会“删除”它们。 这样做的最佳实践是什么?,当我用getGraphics绘
如何在没有类(扩展)的情况下绘制对象?我找到了方法,但它不能绘制对象。
问题内容: 将图片绘制到jframe时出现null异常错误。我调试代码并检查图像和框架是否不为null,但在将图像绘制到框架时仍然抛出NULL异常。 请看一看 : 问题答案: NPE可能来自这里: 根据文档: 为此组件创建图形上下文。如果此组件当前不可显示,则此方法将返回null。 1)不要将其用作坏习惯/不能持久使用,除非组件可见,否则它将返回。 2)相反,使用和覆盖不要忘记在覆盖中作为第一个呼
我想使用pdfbox 1.8.2 c#包装器实现在矩形边界上绘制云的功能。我能够使用此链接中提到的代码绘制单个半圆。但问题是,我只能绘制单个半圆。当我尝试绘制多个相邻的半圆时,它不起作用。下面是我使用的代码。 (CreateSallarc()由Hans Muller编写,许可证:知识共享归因3.0。所做的更改:将原始代码实现为java。算法由Aleksas Riškus提出)