2010-05-06 8 views
9

मैं अपने टाइटलबार को अनुकूलित करना, छोटा करना, अधिकतम करना- और बंद-बटन को कस्टमाइज़ करना चाहता हूं। इसलिए मैंने अपने जेएफआरएएम पर का उपयोग किया, लेकिन मैं अभी भी खिड़की का आकार बदलने में सक्षम होना चाहता हूं। इसे लागू करने का सबसे अच्छा तरीका क्या है?एक अपरिवर्तित JFrame का उपयोग करते समय आकार बदलने के लिए समर्थन कैसे जोड़ें?

मेरे पास रूटपेन पर एक सीमा है, और मैं सीमा या रूटपेन पर माउसलिस्टनर का उपयोग कर सकता हूं। कोई सिफारिशें?

import java.awt.Color; 

import javax.swing.JFrame; 
import javax.swing.JMenu; 
import javax.swing.JMenuBar; 
import javax.swing.JMenuItem; 
import javax.swing.border.LineBorder; 

public class UndecoratedFrame extends JFrame { 

    private LineBorder border = new LineBorder(Color.BLUE,2); 
    private JMenuBar menuBar = new JMenuBar(); 
    private JMenu menu = new JMenu("File"); 
    private JMenuItem item = new JMenuItem("Nothing"); 

    public UndecoratedFrame() { 
     menu.add(item); 
     menuBar.add(menu); 
     this.setJMenuBar(menuBar); 
     this.setUndecorated(true); 
     this.getRootPane().setBorder(border); 
     this.setSize(400,340); 
     this.setVisible(true); 
    } 

    public static void main(String[] args) { 
     new UndecoratedFrame(); 
    } 
} 
+0

** संबंधित प्रश्न: ** http://stackoverflow.com/questions/2781987/how-can-i-ustomize-the-title-bar-on-jframe – Jonas

+0

** यहां एक [उदाहरण] भी है (http://stackoverflow.com/a/24476755/2587435)** –

उत्तर

6

जैसा कि आपने कहा था, आपके रूट फलक पर सीमा है। नतीजतन, कम से कम एक स्थान (महल के नीचे जहां आपकी सीमा खींची जाती है) जहां आपकी रूट फलक सबसे ऊपर का घटक है। नतीजतन, आप इसे एक माउस श्रोता और माउस गति श्रोता जोड़ सकते हैं।

जब आपकी रूट फलक क्लिक की जाती है (और माउस बटन दबाया जाता है), तो आपका माउस और गति श्रोताओं आपको प्रारंभिक और वास्तविक माउस स्थिति के बारे में सूचित करेंगे। नतीजतन, आप अपने फ्रेम आकार बदलने योग्य दोनों मानों के बीच ऑफ़सेट के अपने फ्रेम आकार को अपडेट कर सकते हैं।

+0

यह एक बहुत ही नाजुक उत्तर है। – smwikipedia

5

मुझे RootPane में एक अच्छी विधि मिली जिसने मुझे यह कार्यक्षमता दी, इसलिए अब मुझे केवल यह पता लगाना होगा कि टाइटलबार और उसके बटन कैसे अनुकूलित करें।

मैंने के लिए अपने कन्स्ट्रक्टर में this.getRootPane().setWindowDecorationStyle(JRootPane.FRAME); जोड़ा।

वहाँ Sexy Swing App – The Unified Toolbar और How to control window decorations

+0

** अधिक पढ़ना: ** http://javabyexample.wisdomplug.com/java-concepts/34-core-java/57-spice-up-your-swing-ui-with-substance.html – Jonas

संबंधित मुद्दे

 संबंधित मुद्दे