-3

こんにちはみんな私はこのサイトからJavaを学んでいます。他のファイルと簡単に接続できるように、メインを入れずにJavaファイルを作成したいと思います。このサブファイルを作りたいということです。それで、皆さんは私がこのファイルからメインを削除して実行するのを手伝ってくれますか?

これが私のコードです

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;

import javax.swing.BorderFactory;
import javax.swing.JColorChooser;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

/* ColorChooserDemo.java requires no other files. */
public class jptborder extends JPanel{

protected JColorChooser tcc;
protected JLabel banner;

public jptborder() {
super(new BorderLayout());

//Set up the banner at the top of the window
banner = new JLabel("Welcome To this border Example",
JLabel.CENTER);
banner.setForeground(Color.red);
//banner.setBackground(Color.blue);
banner.setOpaque(true);
banner.setFont(new Font("Arial", Font.BOLD, 24));
banner.setPreferredSize(new Dimension(450, 65));

JPanel bannerPanel = new JPanel(new BorderLayout());
bannerPanel.add(banner, BorderLayout.CENTER);
bannerPanel.setBorder(BorderFactory.createTitledBorder("Welcome"));

add(bannerPanel, BorderLayout.CENTER);

}
public static void createAndShowGUI() {
//Create and set up the window.
JFrame frame = new JFrame("jptBorder");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//Create and set up the content pane.
JComponent newContentPane = new jptborder();
newContentPane.setOpaque(true); //content panes must be opaque
frame.setContentPane(newContentPane);

//Display the window.
frame.pack();
frame.setVisible(true);
}

public static void main(String[] args) {
//Schedule a job for the event-dispatching thread:
//creating and showing this application's GUI.
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
createAndShowGUI();
}
});
}
}
4

3 に答える 3

2

別のファイルに別のクラスを作成し、メイン メソッドをそこに移動します。

詳細については、「 JLS 12. 実行」および「Java チュートリアル」を参照してください。

JPTBorderLauncher.java

import javax.swing.JFrame;
import javax.swing.SwingUtilities;

public class JPTBorderLauncher extends JFrame {
   public JPTBorderLauncher() {
      super( "jptBorder" );
      setDefaultCloseOperation( EXIT_ON_CLOSE );
      add( new jptborder());
      pack();
      setVisible( true );
   }
   public static void main(String[] args) {
      SwingUtilities.invokeLater(new Runnable() {
         @Override public void run() { new JPTBorderLauncher(); }});
   }
}

jptborder.java

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;

import javax.swing.BorderFactory;
import javax.swing.JColorChooser;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingConstants;

public class jptborder
   extends
      JPanel
{
   protected JColorChooser tcc;
   protected JLabel        banner;

   public jptborder() {
      super( new BorderLayout() );
      banner = new JLabel( "Welcome To this border Example",
                           SwingConstants.CENTER );
      banner.setForeground( Color.red );
      banner.setOpaque( true );
      banner.setFont( new Font( "Arial", Font.BOLD, 24 ) );
      banner.setPreferredSize( new Dimension( 450, 65 ) );
      JPanel bannerPanel = new JPanel( new BorderLayout() );
      bannerPanel.add( banner, BorderLayout.CENTER );
      bannerPanel.setBorder( BorderFactory.createTitledBorder( "Welcome" ) );
      add( bannerPanel, BorderLayout.CENTER );
   }
}

結果:

ここに画像の説明を入力

于 2013-03-16T16:32:26.037 に答える
1

目的を達成するには、メイン メソッドを別のクラスに保持する必要があります。そこに電話することができますjptborder createAndShowGUI。例えば:

public class MainClass
{
  public static void main(String st[])
  {
   javax.swing.SwingUtilities.invokeLater( new Runnable()
   {
     @Override
     public void run()
     {
       jptborder.createAndShowGUI();
     }
   });
  }
}

そして、コンパイルして実行しますMainClass

于 2013-03-16T16:27:29.147 に答える
1

メイン用のファイルとクラス用のファイルを作成し、メインjptborderからクラスを参照します。それらが同じパッケージにあり、互いに見えることを確認してください。

public static void main(String args[]) {
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            JptBorder border = new JptBorder(); // To use your constructor
            JptBorder.createAndShowGUI(); to use your static method
        }
    });
}

他のすべてはJptBorderクラスファイルに含まれます。

于 2013-03-16T16:27:35.130 に答える