-1

我々は、図書館管理のためのプログラムを作成しました。ここは韓国です。そのため、一部の単語は、見えませんが、情報源ではありません。

何度も修正しようとしましたが、まだ機能していません

  1. このプログラムを実行すると、2 つのセクションで区切られたポップアップ フレームが表示されます。1 つは書籍のリスト メニュー (韓国語) で、もう 1 つは書籍の画像が表示されます (最初は灰色のウィンドウで表示されます)。

いくつかの画像が選択されている灰色のウィンドウの下にあるイベントボタンの後にopen_fileをポップアップするように設計しましたimage 問題は次のとおりです。ボタンをクリックしても何も起こりません。ボタンをクリックしてもアクションコマンドは起動されません

import java.awt.Button;
import java.awt.Canvas;
import java.awt.Color;
import java.awt.FileDialog;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.IOException;

import javax.swing.JButton;
import javax.swing.JFileChooser;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.filechooser.FileNameExtensionFilter;

public class BookInfo extends Frame {

    public static void main(String[] args) throws IOException {
        // Frame
        final FileDialog fc = null;


        Frame f = new Frame();
        f.setBounds(200, 200, 500, 350);
        f.setLayout(null);
        f.addWindowListener( new WindowAdapter() {

               public void windowClosing(WindowEvent e) {
                    // TODO Auto-generated method stub
                       System.exit(0);
                }
           });

        // 글꼴
        Font font = new Font("궁서", Font.BOLD, 15);
        Font font2 = new Font("궁서", Font.BOLD, 20);


        // title
        Label title = new Label("============   도   서   정   보   ============");
        title.setFont(font2);
        title.setBounds(1, 40, 800, 40);
        f.add(title);

        // 관리번호
        Label bookNum = new Label("관리번호 : ");
        bookNum.setFont(font);  // 글꼴 적용
        bookNum.setBounds(30, 100, 80, 50);
        f.add(bookNum);


        TextField bNum = new TextField("");
        bNum.setFont(font);
        bNum.setBounds(110, 110, 100, 30);
        f.add(bNum);

        // 도서명
        Label bookTitle = new Label("도  서  명 :  ");
        bookTitle.setFont(font);
        bookTitle.setBounds(30, 140, 80, 50);
        f.add(bookTitle);

        TextField bTitle = new TextField("");
        bTitle.setFont(font);
        bTitle.setBounds(110, 155, 100, 30);
        f.add(bTitle);


        // 저자명
        Label writer = new Label("저  자  명 :  ");
        writer.setBounds(30, 180, 80, 50);
        writer.setFont(font);
        f.add(writer);
        TextField wr = new TextField("");
        wr.setFont(font);
        wr.setBounds(110, 193, 100, 30);
        f.add(wr);



        // 출판사
        Label company = new Label("출  판  사 :  ");
        company.setBounds(30, 220, 80, 50);
        company.setFont(font);
        f.add(company);
        TextField com = new TextField("");
        com.setFont(font);
        com.setBounds(110, 235, 100, 30);
        f.add(com);

        // 가격
        Label price = new Label("가        격 :  ");
        price.setBounds(30, 260, 80, 50);
        price.setFont(font);
        f.add(price);
        TextField prc = new TextField("");
        prc.setFont(font);
        prc.setBounds(110, 275, 100, 30);
        f.add(prc);

        // 도서 이미지 
        Canvas c = new Canvas();
        c.setBounds(300, 100, 130, 180);
        c.setBackground(Color.GRAY);
        f.add(c);

        Button img = new Button("사진등록");
        img.setBounds(325, 300, 80, 30);              
        f.add(img);


        f.setVisible(true);
    }
}
4

2 に答える 2

1

ActionListenerボタンにが必要なようで、本の画像を表示します。

ActionListener の使用を見てください。

ボタンにアクションを追加するには、次の方法でコードを変更する必要があると思います。

    final Canvas c = new Canvas();
    c.setBounds(300, 100, 130, 180);
    c.setBackground(Color.GRAY);
    c.setVisible(false);
    f.add(c);

    JButton img = new JButton("7");
    img.setBounds(325, 300, 80, 30);     
    img.addActionListener(new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent arg0) {
            c.setVisible(true);
            //create image for your canvas
        }
    });
    f.add(img);

また、AWT コンポーネントが本当に必要ない場合を除き、 AWTタイプをSwingに変更してください。

于 2013-11-06T07:16:47.200 に答える
1

ボタンに actionlistener を追加して、何らかのアクションを実行してください。現在、あなたのボタンはどのactionEventにもバインドされていないので、待って待って待ってください...イベントはありません(画像なし)

img.addActionListener(theReferenceWhichImplementsActionCommand);

img.addActionListener(new ActionListener() {
  @Override
  public void actionPerformed(ActionEvent ae)
  {
    System.out.println("Button pressed");
  }
});

example1参照を参照してください

お役に立てれば!!

于 2013-11-06T07:13:19.393 に答える