-1

我们制作了图书馆管理程序,这里是 S,Korea,所以有些词,你看不到它们,但它们不是来源。

我们已经尝试了很多次来修复它,但仍然没有奏效

  1. 我们运行这个程序,然后显示由两部分分隔的弹出框,一个是书籍(韩文)的列表菜单,另一个是显示的书籍图像(起初,灰色窗口你可以看到它)

我们设计它在事件后弹出open_file按钮,该按钮位于灰色窗口下方,选择了一些图像 2.按下此按钮后,等待等待等待...没有事件(没有打开文件)=>切换到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 添加到您的按钮以执行一些操作。目前,您的按钮未绑定到任何 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 回答
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类型更改为Swing,除非您真的不需要 AWT 组件。

于 2013-11-06T07:16:47.200 回答