Java 如何使用ImageArray将JPanel类扩展到另一个扩展JApplet的类中
我的程序员要制作一个程序,将你输入的每个单词翻译成另一种语言,并显示输入的每个单词的图像。 使用Jfield和StringArray将英语单词翻译成法语单词。但是我在设置每个图像时遇到了一个大问题。我不知道在日语课上怎么称呼他们 目标是使用ImageArray类设置与Jfield中输入的每个世界对应的每个图像 这是我的ImageArray类: 标题1 公共类ImageArray扩展JPanel实现ActionListener{Java 如何使用ImageArray将JPanel类扩展到另一个扩展JApplet的类中,java,arrays,swing,Java,Arrays,Swing,我的程序员要制作一个程序,将你输入的每个单词翻译成另一种语言,并显示输入的每个单词的图像。 使用Jfield和StringArray将英语单词翻译成法语单词。但是我在设置每个图像时遇到了一个大问题。我不知道在日语课上怎么称呼他们 目标是使用ImageArray类设置与Jfield中输入的每个世界对应的每个图像 这是我的ImageArray类: 标题1 公共类ImageArray扩展JPanel实现ActionListener{ Image[] pics; String[] names; in
Image[] pics;
String[] names;
int NUM_PICS;
JPanel controls, imagePanel;
JButton randomize;
Image currentImage;
ImageIcon icon;
JLabel imageLabel;
public ImageArray() {
setImages();
setLayout(new BorderLayout());
loadImages();
currentImage=pics[0];
setUpControls();
setUpImagePanel();
}
public void setUpControls(){
controls=new JPanel(new FlowLayout());
randomize=new JButton("randomize");
randomize.addActionListener(this);
controls.add(randomize);
add(controls, BorderLayout.SOUTH);
}
public void setUpImagePanel(){
imagePanel=new JPanel(new FlowLayout());
imageLabel=new JLabel();
imageLabel.setHorizontalAlignment(JLabel.CENTER);
icon=new ImageIcon();
icon.setImage(currentImage);
imageLabel.setIcon(icon);
imagePanel.add(imageLabel);
add(imagePanel, BorderLayout.CENTER);
}
public void paintComponent (Graphics g) {
super.paintComponent(g);
Graphics2D g2d = (Graphics2D) g;
g2d.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
g2d.drawImage(currentImage,0,0,250,250,this);
}
public void setImages(){
pics = new Image[NUM_PICS];
NUM_PICS=names.length;
names[0]= "apple.jpg";
names[1]= "bags.jpg";
names[2] = "bathroom.jpg";
names[3] = "battled.jpg";
names[4]= "car.png";
names[5]= "chairs.jpg";
names[6] = "Computer.jpg";
names[7] = "family.jpg";
names[8] = "flowers.jpg";
names[9] = "god.jpg";
names[10] = "house.png";
names[11] = "map.jpg";
names[12] = "men.jpg";
names[13] = "pencil.jpg";
names[14] = "sisters.jpg";
names[15] = "tomato.jpg";
names[16] = "watch.jpg";
names[17] = "women.jpg";
names[18] ="book.gif";
}
public void loadImages(){
for(int i=0; i<names.length; i++){
currentImage=pics[NUM_PICS];
icon.setImage(currentImage);
repaint();
}
}
public int indexOfImages(ImageIcon userInput)
{
for(int i=0;i<names.length;i++)
{
if(userInput.equals(names[i])){return i;}
}
return -1;
}
@Override
public void actionPerformed(ActionEvent e) {
Object button=e.getSource();
if(button==randomize){
int random=(int)(Math.random()*pics.length);
currentImage=pics[random];
icon.setImage(currentImage);
repaint();
}
}
Image[]图片;
字符串[]名称;
国际数字图片;
JPanel控件,图像面板;
JButton随机化;
图像;
图像图标;
JLabel图像标签;
公共图像阵列(){
setImages();
setLayout(新的BorderLayout());
loadImages();
currentImage=pics[0];
设置控件();
setUpImagePanel();
}
公共控件(){
controls=newjpanel(newflowlayout());
随机化=新按钮(“随机化”);
randomize.addActionListener(此);
控制。添加(随机化);
添加(控件,BorderLayout.SOUTH);
}
public void setUpImagePanel(){
imagePanel=newjpanel(newflowlayout());
imageLabel=新的JLabel();
imageLabel.setHorizontalAlignment(JLabel.CENTER);
图标=新的图像图标();
icon.setImage(当前图像);
imageLabel.setIcon(图标);
imagePanel.add(imageLabel);
添加(imagePanel,BorderLayout.CENTER);
}
公共组件(图形g){
超级组件(g);
Graphics2D g2d=(Graphics2D)g;
g2d.setRenderingHint(renderingHits.KEY\u抗锯齿,renderingHits.VALUE\u抗锯齿\u开启);
g2d.drawImage(currentImage,0,0250250,this);
}
公共void setImages(){
pics=新图像[NUM_pics];
NUM_PICS=names.length;
名称[0]=“apple.jpg”;
名称[1]=“bags.jpg”;
名称[2]=“bathy.jpg”;
名称[3]=“battled.jpg”;
名称[4]=“car.png”;
名称[5]=“chairs.jpg”;
名称[6]=“Computer.jpg”;
姓名[7]=“family.jpg”;
名称[8]=“flowers.jpg”;
名称[9]=“god.jpg”;
名称[10]=“house.png”;
名称[11]=“map.jpg”;
姓名[12]=“men.jpg”;
名称[13]=“pencil.jpg”;
姓名[14]=“sisters.jpg”;
名称[15]=“tomato.jpg”;
名称[16]=“watch.jpg”;
姓名[17]=“women.jpg”;
名称[18]=“book.gif”;
}
公共void loadImages(){
对于(int i=0;i1),请对代码和代码片段、HTML/XML或输入/输出等结构化文档使用代码格式。为此,请选择文本并单击{}
按钮,位于消息发布/编辑表单顶部。2)为什么要编写小程序?如果是因为老师指定了小程序,请参考…..3)请参阅和。4)请学习常见的Java命名法(命名约定-例如,EachWordUpperCaseClass
,firstWordLowerCaseMethod()
,firstWordLowerCaseAttribute
除非它是一个大写常量
)并一致地使用它。5)为了更快地获得更好的帮助,请发布一个or。有人可以帮我,尽管我犯了所有愚蠢的错误,但我在程序中一点也不擅长有人能看到我写的东西我犯了一个新的错误