2011-07-20 13 views
3

私はJava Swingアプリケーションを開発中です。私は、図に示すようなダイアログを作成する必要があります。私はこれの名前を知らない。私は説明することができないので、私は写真を添付し​​ています。 これが何であり、どのようにGUIアプリケーションでそれを作成できるのかを教えてください。Java Swingアプリケーションメッセージダイアログヘルプ

Image is like this

+0

がun-decoreted JDialogの#モダリティ – mKorbel

+5

に基づいてカスタムツールヒント、BaloonTipなどのように見えるあなたが欲しいものを説明してください:黄色のボックスを?削除されたアイテム?ハイライトされたテキスト?カスタムクローズドデコレーション? – trashgod

+0

それはある種のステータスまたはメッセージバーのようです。私はスウィングでこれを行うための方法が組み込まれていることを思い出しません(私の経験は非常に限られています)が、おそらくこれはあなたがそれを見つけるのに役立ちます。 –

答えて

8

を肌にする複数の方法があります。


public final class JDialogDemo { 
    private static BufferedImage bi; 

    public static void main(String[] args){ 
     try { 
      loadImage(); 

      SwingUtilities.invokeLater(new Runnable(){ 
       @Override 
       public void run() { 
        createAndShowGUI(); 
       } 
      }); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 

    private static void loadImage() throws IOException{ 
     bi = ImageIO.read(JDialogDemo.class.getResource("../resource/close-icon.png")); 
    } 

    private static void createAndShowGUI(){ 
     final JDialog dialog = new JDialog(); 
     dialog.setUndecorated(true); 

     final JPanel panel = new JPanel(){ 
      @Override 
      public Dimension getPreferredSize(){ 
       return new Dimension(400, 40); 
      } 
     }; 
     panel.setBorder(BorderFactory.createLineBorder(Color.GRAY)); 
     panel.setBackground(new Color(238, 221, 130)); 
     panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS)); 

     final JLabel closeLabel = new JLabel(); 
     closeLabel.setIcon(new ImageIcon(bi)); 
     closeLabel.addMouseListener(new MouseAdapter(){ 
      @Override 
      public void mouseClicked(MouseEvent e){ 
       dialog.dispose(); 
      } 
     }); 

     panel.add(new JLabel("There are deleted items that used to be in this folder.")); 
     panel.add(Box.createHorizontalGlue()); 
     panel.add(closeLabel); 
     dialog.add(panel); 
     dialog.pack(); 
     dialog.setLocationRelativeTo(null); 
     dialog.setVisible(true); 
    } 
} 

enter image description here


これは単にデモンストレーションです。好きなようにこれを自由に調整してください。

+0

なぜ、いいえ、いいえ+1 – mKorbel

+0

+1参照[バリエーション](http://stackoverflow.com/questions/6762984/java-swing-application-message-dialog-help/6766983#6766983)。 – trashgod

+0

は本当に助けました – Asghar

5

もう1つの便利なアイコンのソースはUIManagerです。この場合、JInternalFrameの外観&のフィールcloseIconにはいくつかの魅力がありますが、othersもあります。

@ Moonbeamのanswerを変更すると、以下のような結果が得られます。

private static final Icon icon = UIManager.getIcon("InternalFrame.closeIcon"); 
... 
private static void createAndShowGUI() { 
    ... 
    closeLabel.setIcon(icon); 
    ... 
} 

JDialogDemo

+0

私はこのcloseIconが実際にダイアログを閉じることに興味を持っています! – trashgod

+0

+1、非常に良い。あなたのコメントに関しては、 'MouseListener'を追加する必要はありませんでしたか? – Moonbeam

+2

@Moonbeam:D'oh、私は 'MouseListener'を見落としました!ところで、[GradientPaintDemo]にコンポジットを設定する必要があるかもしれません(こちらはhttp://sites.google.com/site/drjohnbmatthews/composite)。また、作成していないグラフィックスコンテキストを 'dispose()'しないでください。 – trashgod