我已經用Java編寫了簡單的代碼,現在我正在學習Android並嘗試轉換我的代碼。Android Java對象列表與圖片
我想要做的是用圖像製作物體。 有成千上萬的對象(分爲不同的類,如「盒子」「汽車」「主」等) 我想添加每個對象圖像,所以我可以稍後使用它,例如。 BMW_e30.Image();
我會嘗試顯示我的所有代碼可讀性和可理解性,如果不是請評論並告訴我如何改進我的代碼。
首先,我會告訴你我的代碼如何在簡單的Java運行時(所有的Java代碼工作,但它是凌亂,很難理解)
BoxesHolder.class(對象列表)
public class BoxesHolder {
public Integer boxes[] = new Integer[20];
public BoxesHolder(){
MakeBoxes();
}
public void BoxesMaker(int k, int a1, int k1, int a2){
boxes[a1] = k;
boxes[a2] = k1;
}
public void MakeBoxes(){
int i =0; int j =1;
BoxesMaker(10, i, 0, j); // Boxes Level 1
i +=2; j +=2;
BoxesMaker(20, i, 0, j); // Boxes Level 2
i +=2; j +=2;
BoxesMaker(30, i, 0, j); // Boxes Level 3
i +=2; j +=2;
BoxesMaker(40, i, 0, j); // Boxes Level 4
i +=2; j +=2;
BoxesMaker(50, i, 0, j); // Boxes Level 5
i +=2; j +=2;
BoxesMaker(60, i, 0, j); // Boxes Level 6
i +=2; j +=2;
BoxesMaker(70, i, 0, j); // Boxes Level 7
i +=2; j +=2;
BoxesMaker(80, i, 0, j); // Boxes Level 8
i +=2; j +=2;
BoxesMaker(90, i, 0, j); // Boxes Level 9
i +=2; j +=2;
BoxesMaker(100, i, 0, j); // Boxes Level 10
i +=2; j +=2;
}
}
ImagesHolder.class
public class ImagesHolder {
URL BoxLv1_2Icon = ImagesHolder.class.getResource("/BoxLv1_2.png");
URL BoxLv3_4Icon = ImagesHolder.class.getResource("/BoxLv3_4.png");
URL BoxLv5_6Icon = ImagesHolder.class.getResource("/BoxLv5_6.png");
URL BoxLv7_8Icon = ImagesHolder.class.getResource("/BoxLv7_8.png");
URL BoxLv9_10Icon = ImagesHolder.class.getResource("/BoxLv9_10.png");
}
個
標籤在JPanel中顯示圖片:
Labels.BoxesLVL1Label.setIcon(new ImageIcon(ImagesHolder.BoxLv1_2Icon));
Labels.BoxesLVL2Label.setIcon(new ImageIcon(ImagesHolder.BoxLv1_2Icon));
Labels.BoxesLVL3Label.setIcon(new ImageIcon(ImagesHolder.BoxLv3_4Icon));
Labels.BoxesLVL4Label.setIcon(new ImageIcon(ImagesHolder.BoxLv3_4Icon));
Labels.BoxesLVL5Label.setIcon(new ImageIcon(ImagesHolder.BoxLv5_6Icon));
Labels.BoxesLVL6Label.setIcon(new ImageIcon(ImagesHolder.BoxLv5_6Icon));
Labels.BoxesLVL7Label.setIcon(new ImageIcon(ImagesHolder.BoxLv7_8Icon));
Labels.BoxesLVL8Label.setIcon(new ImageIcon(ImagesHolder.BoxLv7_8Icon));
Labels.BoxesLVL9Label.setIcon(new ImageIcon(ImagesHolder.BoxLv9_10Icon));
Labels.BoxesLVL10Label.setIcon(new ImageIcon(ImagesHolder.BoxLv9_10Icon));
OnButtonClick(功能添加新的框)
線添加值(計數):
Box.boxes[1] = Box.boxes[1] + 1;
Box.boxes[3] = Box.boxes[3] + 1;
用於顯示圖像的線條:
JOptionPane.showMessageDialog (null, "You have gained 1 LVL box!", "Congralations", JOptionPane.INFORMATION_MESSAGE, new ImageIcon(ImagesHolder.BoxLv1_2Icon));}
現在我嘗試Android Studio中做
BoxHolder.class
package com.crelix.crelix;
public class BoxHolder {
int id;
String name;
int level;
int price;
int sellprice;
int count;
public void id(int id) {
}
public BoxHolder(String name) {
}
public void level(int level) {
}
public void price(int price) {
}
public void sellprice(int sellprice) {
}
public void count(int count) {
}
public static void main(String args[]) {
BoxHolder AccessoriesBoxOne = new BoxHolder("Accessories Pack LV-1");
BoxHolder AccessoriesBoxTwo = new BoxHolder("Accessories Pack LV-2");
BoxHolder AccessoriesBoxThree = new BoxHolder("Accessories Pack LV-3");
BoxHolder AccessoriesBoxFour = new BoxHolder("Accessories Pack LV-4");
BoxHolder AccessoriesBoxFive = new BoxHolder("Accessories Pack LV-5");
BoxHolder AccessoriesBoxSix = new BoxHolder("Accessories Pack LV-6");
BoxHolder AccessoriesBoxSeven = new BoxHolder("Accessories Pack LV-7");
BoxHolder AccessoriesBoxEight = new BoxHolder("Accessories Pack LV-8");
BoxHolder AccessoriesBoxNine = new BoxHolder("Accessories Pack LV-9");
BoxHolder AccessoriesBoxTen = new BoxHolder("Accessories Pack LV-10");
AccessoriesBoxOne.id(1);
AccessoriesBoxOne.level(1);
AccessoriesBoxOne.price(10);
AccessoriesBoxOne.sellprice(5);
AccessoriesBoxOne.count(0);
AccessoriesBoxTwo.id(2);
AccessoriesBoxTwo.level(2);
AccessoriesBoxTwo.price(20);
AccessoriesBoxTwo.sellprice(10);
AccessoriesBoxTwo.count(0);
AccessoriesBoxThree.id(3);
AccessoriesBoxThree.level(3);
AccessoriesBoxThree.price(30);
AccessoriesBoxThree.sellprice(15);
AccessoriesBoxThree.count(0);
AccessoriesBoxFour.id(4);
AccessoriesBoxFour.level(4);
AccessoriesBoxFour.price(40);
AccessoriesBoxFour.sellprice(20);
AccessoriesBoxFour.count(0);
AccessoriesBoxFive.id(5);
AccessoriesBoxFive.level(5);
AccessoriesBoxFive.price(50);
AccessoriesBoxFive.sellprice(25);
AccessoriesBoxFive.count(0);
AccessoriesBoxSix.id(6);
AccessoriesBoxSix.level(6);
AccessoriesBoxSix.price(60);
AccessoriesBoxSix.sellprice(30);
AccessoriesBoxSix.count(0);
AccessoriesBoxSeven.id(7);
AccessoriesBoxSeven.level(7);
AccessoriesBoxSeven.price(70);
AccessoriesBoxSeven.sellprice(35);
AccessoriesBoxSeven.count(0);
AccessoriesBoxEight.id(8);
AccessoriesBoxEight.level(8);
AccessoriesBoxEight.price(80);
AccessoriesBoxEight.sellprice(40);
AccessoriesBoxEight.count(0);
AccessoriesBoxNine.id(9);
AccessoriesBoxNine.level(9);
AccessoriesBoxNine.price(90);
AccessoriesBoxNine.sellprice(45);
AccessoriesBoxNine.count(0);
AccessoriesBoxTen.id(10);
AccessoriesBoxTen.level(10);
AccessoriesBoxTen.price(100);
AccessoriesBoxTen.sellprice(50);
AccessoriesBoxTen.count(0);
我要添加相似圖片AccessoriesBoxOne.Image (的ImageUrl);我怎樣才能做到這一點?
我現在怎樣訪問對象?無法理解becouse這些行不會再工作:
Box.boxes[1] = Box.boxes[1] + 1;
而且我在想,我會做這樣:
Box.AccessoriesBoxOne.count = +1;
但它不工作。
我希望你能理解我想要說的並試圖去做,希望是Crelix。
其中僅通過許多不同意味着你應該使用數組變量名或名單。請查找關於這些基本編程概念的教程。 –
此外,這是不是一個Android問題,因爲你正在使用JPanel。 –
@代碼學徒我沒有使用新代碼的JPanel(代碼波紋管),JPanel的代碼是從簡單的Java代碼在Eclipse – crelix12345