我试图在同一个类中创建一个简单的JFrame和JPanel,但我不想扩展JFrame或JPanel Java类中的任何一个。我还希望能够包括我自己的paintComponent(),它将覆盖Panel paint组件,这样我就可以绘制我自己的paint组件。我想创建我的
类别:
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;
import javax.imageio.ImageIO;
import javax.swing.JFrame;
import javax.swing.JPanel;
public class SubtractBufferedImage {
private static final long serialVersionUID = 1L;
Dimension dimension = new Dimension(755,450);
public SubtractBufferedImage() {
JFrame f = new JFrame();
JPanel d = new JPanel();/*User defined class that is above*/
d.setBackground(Color.BLACK);
f.add(new myPanel());
f.setSize(745,440);
f.setSize(dimension);
f.setResizable(false);
f.setLocationRelativeTo(null);
f.setTitle("Subtract Buffered Images");
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
public static void main(String[] args) {
SubtractBufferedImage t = new SubtractBufferedImage();
}
}
class myPanel extends JPanel {
private BufferedImage bTest1 = null;
private BufferedImage bTest2 = null;
Dimension dimension = new Dimension(755,450);
private String iOne = "src/com/ddh/graphicsBook/CardImage/hold.jpg";
private String iTwo = "src/com/ddh/graphicsBook/CardImage/draw.jpg";
myPanel() {
bTest1 = loadAnyImage(iOne);
bTest2 = loadAnyImage(iTwo);
}
private BufferedImage loadAnyImage(String value){
BufferedImage newImage = null;
try {
newImage = ImageIO.read(new File(value));
} catch (IOException e) {
e.printStackTrace();
}
return newImage;
}
private void drawImageToScreen(Graphics g,BufferedImage i,int x,int y){
Graphics2D g2d = (Graphics2D) g;
g2d.drawImage(i,x,y,null);
}
public void paintComponent(Graphics g){
super.paintComponent(g);
drawImageToScreen(g,bTest1,10,10);
drawImageToScreen(g,bTest2,150,10);
}
}
JPanel和JFrame都是Java类,而不是接口,因此基本上不能在它们内部实现自己的方法(根据SOLID rules open/closed原则,它们对扩展开放,但对修改关闭)。要实现自己的paintComponent,必须扩展JPanel,通常就是这样做的。我不知道为什么您不愿意扩展这些类,但如果您这样做了,您就可以实现所有其他规范:
关于您要更改的注释添加公共显示(图形g) [链接]http://www3.canyons.edu/faculty/biblej/project6.html 1.)Project6类必须扩展JFrame类2.)Project6构造函数必须设置GUI窗口3.)一个新的抽象方法:public void display(Graphics g);应该添加到基和派生类4.)一个自定义JPanel必须使用pai
我必须插入一个JFrame,另一个类的一个JPanel。我在JFrame中有一个jMenuItem,我希望这样,当我单击jMenuItem,就会出现JPanel。
好吧,所以我试图在Java创建自己的LinkedList类(带有泛型类型),但是遇到了一些问题。我创建了一个LinkedListNode类,它基本上设置并获取next和right指针以及节点的键。我的LinkedList类代码发布在下面,如果您编译并运行,您会发现它没有按照应该的方式设置列表。此刻,我正在尝试在节点x之后插入节点y,但我的打印输出看起来像: 键:5-上一键:6-下一键:6键:6-上
在创建其他依赖bean之前,是否可以避免@Autowire某些bean?让我用一个例子更好地解释一下: 我有一个FactoryBean,它创建了一个类型为A的对象,该对象具有一个名为a的属性。如果属性为null,它会为bean A分配默认值。 在@Configuration类中,我有: 发生的事情是工厂创建bean(我不完全理解如何创建),但工厂中的字段a为null,我需要它使用另一个bean来创
当我们使用术语"类库"时,我们一般指的是位于libraries 文件夹中的类,它们在wiki的"类库参考"这个板块被讨论.在当前这个话题中,我们将讨论如何在 application/libraries 文件夹中建立你自己的类库,并使它们与全框架的资源维持分离. 作为一个额外的功能,当你需要在原始类中简单地添加一些功能时,CodeIgniter能使你的类库extend 自原始类.你甚至可以通过在ap