1

こんにちは、別のクラスから呼び出されるポップアップ ウィンドウのデフォルト フレームを設定できます。おそらくおわかりのように、私は Java の極端な初心者です。どんな助けでも大歓迎です。

これは、実行する 2 番目のクラスを呼び出すコードです。

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

class Login extends JFrame implements ActionListener
{
 JButton SUBMIT;
 JPanel panel;
 JLabel label1,label2;
 final JTextField  text1,text2;
  Login()
  {
  label1 = new JLabel();
  label1.setText("               Enter Username:");
  label1.setForeground(Color.green);

  text1 = new JTextField(10);

  label2 = new JLabel();
  label2.setText("               Enter Password:");
  label2.setForeground(Color.green);
  text2 = new JPasswordField(10);

  SUBMIT=new JButton("SUBMIT");
  SUBMIT.setOpaque(true);
  SUBMIT.setBackground(Color.BLACK);
  SUBMIT.setForeground(Color.green);

  panel=new JPanel(new GridLayout(4,1));
  panel.add(label1);
  panel.add(text1);
  panel.add(label2);
  panel.add(text2);
  panel.add(SUBMIT);
  add(panel,BorderLayout.CENTER);
  SUBMIT.addActionListener(this);
  setTitle("LOGIN or DIE!!!!!");
  panel.setBackground(Color.black);
  setDefaultLookAndFeelDecorated(true);
  setLocationRelativeTo(null);
  }
 public void actionPerformed(ActionEvent ae)
  {
  String value1=text1.getText();
  String value2=text2.getText();
  if (value1.equals("McDinger") && value2.equals("welcome1")) {
  ExerciseSevenPt2 page=new ExerciseSevenPt2();
  page.setVisible(true);
  JLabel label = new JLabel(" Welcome to The Java Cave, "+value1 + ". " + "Are you Worthy of the Cave?");
  label.setOpaque(true);
  label.setForeground(Color.green);
  label.setBackground(Color.black);
  page.getContentPane().add(label);
  }
  else{
  System.out.println("enter the valid username and password OR ELSE!!!!!");

  UIManager UI=new UIManager();
  UI.put("OptionPane.messageForeground", Color.red);
  UI.put("OptionPane.background", Color.black);
  UI.put("Panel.background", Color.black);

  JOptionPane.showMessageDialog(this,"Incorrect login or password Genius", "Error",JOptionPane.ERROR_MESSAGE);
  setDefaultLookAndFeelDecorated(true);

  }
}
}
 class ExerciseSeven
{
  public static void main(String arg[])
  {
  try
  {
  Login frame=new Login();
  frame.setSize(300,100);
  frame.setVisible(true);
  }
  catch(Exception e)
  {JOptionPane.showMessageDialog(null, e.getMessage());}
  }
}

そして、これが2番目のクラスです

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

class ExerciseSevenPt2 extends JFrame
{   
    ExerciseSevenPt2()
 {      
 setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
 setTitle("The Java Cave ");
 setSize(400,70);
 setLocationRelativeTo(null);
 }
}

そして、これがコードを実行した後の視覚的な問題です。下のウィンドウは、上のウィンドウをどのように見せたいかです。

ここに画像の説明を入力

4

2 に答える 2

6

ウィンドウの「ルック アンド フィールを設定」するには、UIManagerを使用する必要があります。

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
于 2013-03-27T23:19:54.320 に答える
2

evuez が既に (+1) と述べているように、システムのルック アンド フィールをインストールするだけです。

詳細については、ルック アンド フィールの設定方法をご覧ください。

次の例では、基本的に、システムのルック アンド フィールをインストールしてから、他の操作を行います。これは非常に重要です。そうしないと、非常に厄介なペイント エフェクトや不一致のレンダリング更新が発生する可能性があります。

ここに画像の説明を入力

明らかに、私は Mac OS のルック アンド フィールを使用していますが、それを実行するプラットフォームに関係なく、システムのルック アンド フィールを使用します。

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;

public class Test02 {

    public static void main(String[] args) {
        new Test02();
    }

    public Test02() {
        EventQueue.invokeLater(new Runnable() {
            @Override
            public void run() {
                try {
                    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                } catch (ClassNotFoundException ex) {
                } catch (InstantiationException ex) {
                } catch (IllegalAccessException ex) {
                } catch (UnsupportedLookAndFeelException ex) {
                }
                JFrame frame = new JFrame("The Java Cave ");
                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                frame.setLayout(new BorderLayout());
                frame.add(new TestPane());
                frame.pack();
                frame.setLocationRelativeTo(null);
                frame.setVisible(true);
            }
        });
    }

    public class TestPane extends JPanel {

        public TestPane() {
            setBackground(Color.BLACK);
            JLabel label = new JLabel("Welcome to the Jave Cave, be afraid, be very afraid");
            label.setForeground(Color.GREEN);
            add(label);
        }

    }

}
于 2013-03-27T23:40:02.403 に答える