我有一个关于在LinkedList中添加“像素”的问题。
完成方法:
>
public Pixel pixelAt(int zeile,int spalte)这个方法在“图片”的行/列中返回一个后面的“Pixel”。如果没有黑色“像素”,则返回NULL。
public void printBild()为黑色像素打印一个“*”,为白色像素打印一个“-”。
此方法应检查该行/列中是否有黑色像素。这里我可以使用方法pixelAt()。一个白色像素应该被更改为一个黑色像素,因此有一个像素被html" target="_blank">添加到链表中。如果像素已经是黑色的,则不会发生任何事情。
在我再次调用printBild()之后,一个白色像素“_”仍然是白色的,而不是黑色的“*”。
public class Pixel {
private int zeile;
private Pixel next;
public Pixel ( int zeile, Pixel p ) {
this.zeile = zeile;
this.next = p;
}
public int getZeile() {
return zeile;
}
public Pixel getNext() {
return next;
}
// Setze Verweis auf nächsten schwarzen Pixel
public void setNext( Pixel p) {
next = p;
}
}
public class Bild {
private Pixel [] data;
private int hoehe, breite;
public Bild (int hoehe, int breite) {
this.data = new Pixel [breite];
this.hoehe = hoehe;
this.breite = breite;
}
public void setData(Pixel [] temp) {
this.data = temp;
}
public Pixel pixelAt(int zeile, int spalte) {
Pixel iterator = data[spalte];
if(iterator.getZeile() == zeile) {
return iterator;
}
else {
while (iterator.getNext() != null) {
iterator = iterator.getNext();
if(iterator.getZeile() == zeile) {
return iterator;
}
}
}
return null;
}
public void printBild() {
String leer = "";
String [] hi = new String [hoehe];
for (int k = 0; k < hoehe; k++) {
hi[k] = leer;
}
for (int i = 0; i < data.length; i++) {
Pixel iterator = data[i];
for (int j = 0; j < hoehe ; j++) {
if (iterator == null) {
hi[j] += " - ";
}
else {
if (iterator.getZeile() == j) {
hi[j] += " * ";
iterator = iterator.getNext();
}
else {
hi[j] += " - ";
}
}
}
}
for (int q = 0; q < hi.length; q++) {
System.out.println(hi[q]);
}
}
public void pixelOn(int zeile, int spalte) {
if (pixelAt(zeile, spalte) == null) {
Pixel it = data[spalte];
for (int i = 1; i < zeile; i++) {
it = it.getNext();
}
Pixel tmp = it.getNext();
Pixel neu = new Pixel(zeile, null);
it.setNext(neu);
neu.setNext(tmp);
}
}
}
public class TestBild {
public static void main(String[] args) {
Pixel a1 = new Pixel(2, null);
Pixel b1 = new Pixel(0, null);
Pixel b2 = new Pixel(1,null);
b1.setNext(b2);
Pixel b3 = new Pixel (3, null);
b2.setNext(b3);
Pixel c1 = new Pixel(1, null);
Pixel c2 = new Pixel(2,null);
c1.setNext(c2);
Pixel [] temp = new Pixel [3];
temp[0] = a1;
temp[1] = b1;
temp[2] = c1;
Bild BW = new Bild(4,3);
BW.setData(temp);
BW.printBild();
BW.pixelOn(2, 0);
System.out.println();
BW.printBild();
}
}
谢谢你!
首先,您的pixelon
比您编写的更棘手。应该是这样的:
public void pixelOn(int zeile, int spalte) {
if (pixelAt(zeile, spalte) == null) {
Pixel neu = new Pixel(zeile, null);
Pixel it = data[spalte];
if(it!=null){
if(it.getZeile()<zeile){
Pixel tmp=it.getNext();
while(tmp!=null && tmp.getZeile()<zeile){
it = tmp;
tmp = it.getNext();
}
it.setNext(neu);
neu.setNext(tmp);
}else{
neu.setNext(it);
data[spalte] = neu;
}
}else{
//there is nothing in the column for now add it
data[spalte] = neu;
}
}
}
第二,您的测试不是在白色位置插入。(2,0)是行2和列0。那里的元素是黑色的。
问题内容: 我正在使用JDeveloper在Java中设计一个表单。我是JDeveloper的新手。在JDeveloper工具中,我没有找到任何直接将图像添加到.Net之类的选项。而且我不知道如何手动添加图像以形成表单。还有其他解决方法。所以请帮我解决。 问题答案: 就这么简单: 耶!现在,您的图像是摆动组件!将其添加到框架或面板或通常执行的任何操作中!可能也需要重新粉刷,例如
我刚刚开始用libGDX做原型,以了解它是如何工作的。我想实现一个网格(像象棋游戏),当我点击/触摸网格的一个盒子,这改变了它的形象。 我找到了一个很好的教程,但它只使用键盘监听器,在网络上,我找不到一个很好的例子来阐明这些机制。 我不明白的是:用什么来渲染框(目前我只使用了SpriteBatch和ShapeRenderer)以及如何检测何时哪个框被点击(我认为计算坐标不是一个好方法。我认为最好的
问题内容: 我有一个性别选择列表。 码: 我想使用下拉列表中的图像作为drop-down-icon.jpeg。 我想添加一个按钮代替下拉图标。 怎么做? 问题答案: 在 Firefox中, 您可以将背景图片添加到选项中: 更好的是,您可以像这样将HTML和CSS分开 HTML CSS 在 其他浏览器中 ,唯一的方法是使用某些JS小部件库,例如 jQuery UI ,例如使用Selectable 。
我是第一次开发颤振应用程序。。我在添加图像时遇到问题。我有以下问题: 在哪里创建图像文件夹? 在哪里添加资产标签pubspec.ymal? 这需要任何资产文件夹吗? 我所尝试的: 在pubspec内部。ymal: 完整文件: 错误日志: 我的主菜。dart代码: 我指的是这个教程https://flutter.io/tutorials/layout/ 此外,我想问,有没有在颤振清洁重建的工具,因为
问题内容: 问题答案: 您必须向JLabel提供一个实现(即)。您可以通过方法(如您的问题)中的方法或通过构造函数来执行此操作: 我建议你阅读的Javadoc ,和。另外,您可以查看“ 如何使用标签教程 ”以获取更多信息。
问题内容: 我有一个JPanel,我想向其中添加即时生成的JPEG和PNG图像。 到目前为止,我在Swing教程中看到的所有示例,特别是在Swing示例中,都使用ImageIcon。 我将这些图像生成为字节数组,它们通常比示例中使用的通用图标大,尺寸为640x480。 使用ImageIcon类在JPanel中显示该大小的图像时是否存在任何(性能或其他)问题? 什么是平常做的呢? 如何不使用Imag