不知道如何使用外部窗格进行GUI

helloWorldIsAlliKnow

我有以下2个Java类。我想上三等班。第三类应该是带有两个选项卡的选项卡式窗格。一个选项卡应具有我放置的第一个窗格,第二个选项卡应具有我放置的第二个窗格。我不知道。在我断开计算机之前,请帮助我。我到处搜寻。我已经尝试阅读oracle文档,但我猜它对我没有点击。我已经一遍又一遍地阅读我的文字了.....

package Week4;

import java.awt.Color;
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.FocusEvent;
import java.awt.event.FocusListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.text.DecimalFormat;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class OfficeAreaCalculator extends JFrame{

private JFrame mainFrame;
private JButton calculateButton;
private JButton exitButton;
private JTextField lengthField;
private JTextField widthField;
private JTextField areaField;
private JLabel lengthLabel;
private JLabel widthLabel;
private JLabel areaLabel;

public OfficeAreaCalculator()
{
    mainFrame = new JFrame("Office Area Calculator");

    exitButton = new JButton("Exit");
    lengthLabel = new JLabel("Enter the length of the office:");
    widthLabel = new JLabel("Enter the width of the office:");
    areaLabel = new JLabel("Office area:");
    lengthField = new JTextField(5);
    widthField = new JTextField(5);
    areaField = new JTextField(5);
    areaField.setEditable(false);
    calculateButton = new JButton("Calculate");

    Container c = mainFrame.getContentPane();
    c.setBackground(Color.white);
    c.setLayout(new FlowLayout());

    c.add(lengthLabel);
    c.add(lengthField);
    c.add(widthLabel);
    c.add(widthField);
    c.add(areaLabel);
    c.add(areaField);
    c.add(calculateButton);
    c.add(exitButton);

    calculateButton.setMnemonic('C');
    exitButton.setMnemonic('X');

    mainFrame.setSize(260, 150);

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

    CalculateButtonHandler chandler = new CalculateButtonHandler();
    calculateButton.addActionListener(chandler);

    ExitButtonHandler ehandler = new ExitButtonHandler();
    exitButton.addActionListener(ehandler);

    FocusHandler fhandler = new FocusHandler();
    lengthField.addFocusListener(fhandler);
    widthField.addFocusListener(fhandler);
    areaField.addFocusListener(fhandler);

    mainFrame.setVisible(true);
}




class CalculateButtonHandler implements ActionListener
{
    public void actionPerformed(ActionEvent e)
    {
        DecimalFormat num = new DecimalFormat(",###.##");
        double width, length, area;
        String instring;

        instring = lengthField.getText();
        if (instring.equals(""))
        {
            instring = ("0");
            lengthField.setText("0");
        }
        length = Double.parseDouble(instring);

        instring = widthField.getText();
        if (instring.equals(""))
        {
            instring = "0";
            widthField.setText("0");
        }
        width = Double.parseDouble(instring);

        area = length * width;
        areaField.setText(num.format(area));

    }

}

class ExitButtonHandler implements ActionListener
{
    public void actionPerformed(ActionEvent e) {
        System.exit(0);
    }       
}

class FocusHandler implements FocusListener
{
    public void focusGained(FocusEvent e)
    {
        if (e.getSource() == lengthField || e.getSource() == widthField)
        {
            areaField.setText("");
        }
        else if (e.getSource() == areaField)
        {
            calculateButton.requestFocus();
        }
    }

    public void focusLost(FocusEvent e)
    {
        if (e.getSource() == widthField)
        {
            calculateButton.requestFocus();
        }
    }
}

public static void main(String arg[])
{
    new OfficeAreaCalculator();
}
}

package Week4;

import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;


import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;

import java.awt.*;


public class DayGUI extends JFrame
{
private JFrame mainFrame;
private JButton cmdGood;
private JButton cmdBad;

public DayGUI(){
    mainFrame = new JFrame("Messages");


    cmdGood = new JButton("Good");
    cmdBad = new JButton("Bad");

    Container c = mainFrame.getContentPane();
    c.setBackground(Color.white);
    c.setLayout(new FlowLayout());

    c.add(cmdGood);
    cmdGood.setBackground(Color.green);
    c.add(cmdBad);
    cmdBad.setBackground(Color.red);

    cmdGood.setMnemonic('G');
    cmdBad.setMnemonic('B');

    mainFrame.setSize(300, 100);

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

    ButtonsHandler bhandler = new ButtonsHandler();
    cmdGood.addActionListener(bhandler);
    cmdBad.addActionListener(bhandler);

    mainFrame.setVisible(true);
}

class ButtonsHandler implements ActionListener
{
    public void actionPerformed(ActionEvent e){

        if (e.getSource() == cmdGood)               
            JOptionPane.showMessageDialog(null, "Today is a good day!",
                    "Event Handler Message",
                    JOptionPane.INFORMATION_MESSAGE);

        if (e.getSource() == cmdBad)
            JOptionPane.showMessageDialog(null, "Today is a bad day!",
                    "Event Handler Message",
                    JOptionPane.INFORMATION_MESSAGE);

    }
}

public static void main(String[] args) {
    // TODO Auto-generated method stub
    DayGUI app;
    app = new DayGUI();
}

}
伊诺

您无法将Jframe添加到选项卡式窗格。如果您的每个应用程序都是JPanel,则可以将它们添加到JTabbedPane中。

您的每个JFrame类都使用一个JFrame,并且在框架中,每个类都会创建其内容。您可以重新排列代码,以便每个JFrame都可以创建一个面板,该面板可以像Jframe一样创建其内容。然后将面板添加到JFrame。您的前两个应用程序仍然可以正常运行。

对于第三个类,请使用Jframe,将JTabbedPane添加到Jframe,然后将上面创建的两个面板(前两个中的每个)添加到选项卡式窗格中。

最简单的方法可能是完成第3个类,只是更改前两个类以扩展JPanel而不是Jframe。然后创建一个从JFrame扩展的类,并添加一个JTabbedPane来添加两个面板。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

JavaScript /不知道如何使用变量

来自分类Dev

不知道如何使用rxjava

来自分类Dev

highcharts 不知道如何从外部 json 加载数据

来自分类Dev

不知道记录是否存在时,如何使用Entity Framework进行合并?

来自分类Dev

不知道记录是否存在时,如何使用Entity Framework进行合并?

来自分类Dev

Java Clock模拟,不知道如何进行...

来自分类Dev

如果我不知道文本长度,如何使用varbinary

来自分类Dev

不知道如何在Haskell中使用toEnum

来自分类Dev

我不知道如何使用反射设置值

来自分类Dev

我知道如何使用 wxpython GridCellChoiceEditor 将网格单元格更改为组合框,但不知道如何绑定此组合框

来自分类Dev

不知道如何建立任务-黄瓜

来自分类Dev

不知道如何建立任务“轨道”

来自分类Dev

Rails不知道如何构建任务

来自分类Dev

不知道如何获得敌人的健康

来自分类Dev

不知道如何建立联系

来自分类Dev

不知道该如何异步

来自分类Dev

不知道如何建立任务-黄瓜

来自分类Dev

SlideView面板-不知道如何引用

来自分类Dev

phpstorm不知道如何运行Wordpress

来自分类Dev

使不知道如何制作CXXFLAGS。停止

来自分类Dev

如何投射到不知道的课程

来自分类Dev

不知道如何正确循环

来自分类Dev

不知道如何调用函数

来自分类Dev

真的不知道如何设置功能以识别是否选择了单元格

来自分类Dev

R如何在不知道长度的情况下进行for循环?

来自分类Dev

用于构建增强效果的“ stage”参数:“不知道如何进行<e> stage”

来自分类Dev

如何在不知道宽度或高度的情况下最好地对矩形的角进行排序?

来自分类Dev

如何在不知道确切OU的情况下进行LDAP查询

来自分类Dev

如何在不知道其实现的情况下对堆栈ADT进行单元测试

Related 相关文章

  1. 1

    JavaScript /不知道如何使用变量

  2. 2

    不知道如何使用rxjava

  3. 3

    highcharts 不知道如何从外部 json 加载数据

  4. 4

    不知道记录是否存在时,如何使用Entity Framework进行合并?

  5. 5

    不知道记录是否存在时,如何使用Entity Framework进行合并?

  6. 6

    Java Clock模拟,不知道如何进行...

  7. 7

    如果我不知道文本长度,如何使用varbinary

  8. 8

    不知道如何在Haskell中使用toEnum

  9. 9

    我不知道如何使用反射设置值

  10. 10

    我知道如何使用 wxpython GridCellChoiceEditor 将网格单元格更改为组合框,但不知道如何绑定此组合框

  11. 11

    不知道如何建立任务-黄瓜

  12. 12

    不知道如何建立任务“轨道”

  13. 13

    Rails不知道如何构建任务

  14. 14

    不知道如何获得敌人的健康

  15. 15

    不知道如何建立联系

  16. 16

    不知道该如何异步

  17. 17

    不知道如何建立任务-黄瓜

  18. 18

    SlideView面板-不知道如何引用

  19. 19

    phpstorm不知道如何运行Wordpress

  20. 20

    使不知道如何制作CXXFLAGS。停止

  21. 21

    如何投射到不知道的课程

  22. 22

    不知道如何正确循环

  23. 23

    不知道如何调用函数

  24. 24

    真的不知道如何设置功能以识别是否选择了单元格

  25. 25

    R如何在不知道长度的情况下进行for循环?

  26. 26

    用于构建增强效果的“ stage”参数:“不知道如何进行<e> stage”

  27. 27

    如何在不知道宽度或高度的情况下最好地对矩形的角进行排序?

  28. 28

    如何在不知道确切OU的情况下进行LDAP查询

  29. 29

    如何在不知道其实现的情况下对堆栈ADT进行单元测试

热门标签

归档