0

こんにちは、

おそらく私の質問は非常に単純ですが、これは私の初めてのJavaプログラムであり、何をすべきかわかりません。

画像を開くコンボボックスを作成したい。それだけ!

しかし、2つのエラーが発生します。1。メモリ不足2.'' images = new JComboBox(names);''行のJComboBox(E [])へのチェックされていない呼び出し

最初のエラーは、-Xmx1024mコマンドを使用してEclipseで修正しようとしましたが、プログラムはeclipseプラットフォームで実行されますが、javacコマンドを使用してコンパイルしようとすると、エラー2が発生します。最後に、Eclipseから.jarファイルを作成して実行します。 、310の最初の80だけがすべての画像をロードするわけではありません。

すべての画像をロードし、それほど多くのメモリを使用する必要がないようにコードを記述する別の方法はありますか?

誰かが私のコードを修正していただければ幸いです...

どうもありがとう、ウィッシュマスター

私のコードはこれです:

package test;  

import java.awt.*;  
import java.awt.event.*;  
import java.awt.FlowLayout;  
import java.awt.event.ItemListener;  
import java.awt.event.ItemEvent;  
import javax.swing.JFrame;  
import javax.swing.JLabel;  
import javax.swing.JComboBox;  
import javax.swing.Icon;  
import javax.swing.ImageIcon;  

public class ComboBoxTest extends JFrame {  
private JComboBox images;  
private JLabel label;  
private String names[] =  
{  "1.P 1.png",  
   "2.P -1.png",   ....so on to 300 images };  

private Icon icons[] =  
new Icon[] {    new ImageIcon( names[ 0] ),  
        new ImageIcon( names[ 1 ] ), ....so on  };  
 };  

public ComboBoxTest() {  
super( "Testing JComboBox" );  

Container c = getContentPane();  
c.setLayout( new FlowLayout() );  

images = new JComboBox( names );  
images.setMaximumRowCount( 10 );  

images.addItemListener(  
new ItemListener() {  
public void itemStateChanged( ItemEvent e ) {  
label.setIcon(  
icons[ images.getSelectedIndex() ] );  
}  
}  
);  

c.add( images );  

label = new JLabel( icons[ 0 ] );  
c.add( label);  
setVisible(true);  
setSize( 500, 500 );  
}  


public static void main( String args[] )  
{  
ComboBoxTest app = new ComboBoxTest();  

app.addWindowListener(  
new WindowAdapter() {  
public void windowClosing( WindowEvent e )  
{  
System.exit( 0 );  
}  
}  
);  
}  
}  
4

1 に答える 1

0

私が正しく理解されていれば。

  1. 最初にimageiconを作成しないでください。アイテムリスナーで唯一の特定の画像を作成します。

    images.addItemListener(  
    new ItemListener() {  
    public void itemStateChanged( ItemEvent e ) {  
    Icon ico=new ImageIcon(toString(images.getSelectedItem()));
    label.setIcon(ico);  
    }  
    }  
    );  
    

これは必要ありません:

private Icon icons[] =  
new Icon[] {    new ImageIcon( names[ 0] ),  
        new ImageIcon( names[ 1 ] ), ....so on  };  
 };  
于 2013-02-20T14:40:30.240 に答える