簡體   English   中英

調用一個JFrame類到另一個類

[英]Calling a JFrame class into another class

 import java.awt.*;
 import java.awt.event.*;
 import javax.swing.*;

public class Temperature extends JFrame implements ActionListener{
private JLabel text1,text2;
private JTextField userInput,output;
private JButton cvrt,cvrt1,clr;

public void BuildGUI(){

    text1 = new JLabel("Key in your value");
    text2 = new JLabel("Answer");
    userInput = new JTextField();
    output = new JTextField();
    cvrt = new JButton("Convert Celcius to Fahrenheit");
    cvrt.addActionListener(this);
    cvrt1 = new JButton ("Convert Fahrenheit to Celcius");
    cvrt1.addActionListener(this);
    clr = new JButton("Clear");
    clr.addActionListener(this);

    Container cpane = getContentPane();
    cpane.setLayout(new GridLayout(4,2));
    setVisible(true);
    cpane.add(text1);
    cpane.add(userInput);
    cpane.add(text2);
    cpane.add(output);
    cpane.add(cvrt);
    cpane.add(cvrt1);
    cpane.add(clr);   
}

public void actionPerformed(ActionEvent e){
     double fahrenheit,celcius;
    if(e.getSource()== cvrt){
        String value = userInput.getText();
        celcius = Double.parseDouble(value);
        fahrenheit = celcius*1.8+32;
         String out = ""+fahrenheit;     
         output.setText(out);
    }else if (e.getSource()== cvrt1){
        String value = userInput.getText();
        fahrenheit = Double.parseDouble(value);
        celcius = (fahrenheit-32)/1.8;
        String out = ""+ celcius;
        output.setText(out);
    }else{
        userInput.setText(null);
        output.setText(null);
    }
}
}

抱歉,我還是Java的新手。 我被指派創建一個選項卡窗格。 我只是想知道您能否將上方的課程調入下方的JTabbed窗格? 因為將所有代碼都丟在一個類中會很麻煩。 已經運行了很多網站,但仍然徒勞。 希望有人可以指出這一點。

public class Windows extends JFrame{
public Windows(){
    setTitle("Converter");       
    setSize(null);
    JTabbedPane tabby = new JTabbedPane();
    getContentPane().add(tabby);

}

您的Temperature類必須是JPanel並且必須創建一個合適的構造函數來初始化GUI。 然后,您可以將JPanel添加到另一個類的JTabbedPane中,如下所示:

public class Windows extends JFrame{
public Windows(){
    setTitle("Converter");       
    setSize(null);
    JTabbedPane tabby = new JTabbedPane();
    getContentPane().add(tabby);
    Temperature t = new Temperature();
    tabby.addTab(t);
}

好的,首先:
為什么JFrame的大小為null?
您如何看到不可見的東西???
使用方法JFrame.setSize(width,height) [ 鏈接 ]

第二件事是:
有一個名為JFrame.setVisible(boolean) [ Link ]的方法,您是否想過為什么要提供該方法?
使JFrame在課程中可見。

另一件事是:
有一個名為setDefaultCloseOperation(int value) [ Link ]的方法,該方法定義了關閉JFrame時應使用的方法。 這是代碼:

public class Windows extends JFrame{
public Windows(){
    setTitle("Converter");       
    setSize(100,200);
    JTabbedPane tabby = new JTabbedPane();
    getContentPane().add(tabby);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
    setVisible(true);

}

有關其余方法,請參考Oracle Java文檔:
http://docs.oracle.com/javase/6/docs/api/javax/swing/JFrame.html

最后
即使使用我修改的代碼,您也無法正確看到選項卡式窗格,因為您必須使用
JFrame內的布局管理器 [ Link ]用於對齊,固定和定位組件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM