Advertisement
Guest User

textpane issue

a guest
Jan 28th, 2012
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 6.51 KB | None | 0 0
  1. public class MessageDialog extends JDialog {
  2.  
  3.     public MessageDialog(java.awt.Frame parent, boolean modal,
  4.             boolean ignoreBool) {
  5.         super(parent, modal);
  6.         this.ignoreBool = ignoreBool;
  7.         initComponents();
  8.     }
  9.  
  10.     private void initComponents() {
  11.         GridBagConstraints gridBagConstraints;
  12.  
  13.         jScrollPane1 = new JScrollPane();
  14.         jButton1 = new JButton();
  15.         jButton2 = new JButton();
  16.         final StyleContext sc = new StyleContext();
  17.         final DefaultStyledDocument doc = new DefaultStyledDocument(sc);
  18.         jTextPane1 = new JTextPane(doc);
  19.         createDocumentStyles(sc);
  20.  
  21.         setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
  22.         setTitle("Error And Warning Messages");
  23.         setName("Form"); // NOI18N
  24.         // setResizable(false);
  25.         getContentPane().setLayout(new GridBagLayout());
  26.  
  27.         jScrollPane1.setName("jScrollPane1"); // NOI18N
  28.  
  29.         jTextPane1
  30.                 .setBorder(BorderFactory.createLineBorder(new Color(0, 0, 0)));
  31.         jTextPane1.setName("jTextPane1"); // NOI18N
  32.         jTextPane1.setEditable(false);
  33.         jScrollPane1.setViewportView(jTextPane1);
  34.         jScrollPane1
  35.                 .setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED);
  36.  
  37.         boolean hasNoErrors = ignoreBool;
  38.  
  39.         gridBagConstraints = new GridBagConstraints();
  40.         gridBagConstraints.gridx = 0;
  41.         gridBagConstraints.gridy = 0;
  42.         gridBagConstraints.gridwidth = hasNoErrors ? 3 : 2;
  43.         gridBagConstraints.fill = GridBagConstraints.BOTH;
  44.         gridBagConstraints.ipadx = hasNoErrors ? 405 : 383;
  45.         gridBagConstraints.ipady = hasNoErrors ? 223 : 227;
  46.         gridBagConstraints.weightx = 1.0;
  47.         gridBagConstraints.weighty = 1.0;
  48.         gridBagConstraints.fill = GridBagConstraints.NONE;
  49.         gridBagConstraints.insets = new Insets(11, 10, 0, 10);
  50.         getContentPane().add(jScrollPane1, gridBagConstraints);
  51.  
  52.         jButton2.setText("Go Back"); // NOI18N
  53.         jButton2.setName("jButton2"); // NOI18N
  54.         gridBagConstraints = new GridBagConstraints();
  55.         gridBagConstraints.gridx = 0;
  56.         gridBagConstraints.gridy = 1;
  57.         gridBagConstraints.fill = GridBagConstraints.NONE;
  58.         gridBagConstraints.insets = hasNoErrors ? new Insets(18, 139, 19, 0)
  59.                 : new Insets(14, 182, 11, 0);
  60.         jButton2.setText("Go Back");
  61.         jButton2.setName("jButton1"); // NOI18N
  62.         jButton2.addActionListener(new ActionListener() {
  63.             public void actionPerformed(ActionEvent arg0) {
  64.                 goBack(arg0);
  65.             }
  66.         });
  67.  
  68.         // gridBagConstraints.gridwidth = 2;
  69.  
  70.         gridBagConstraints.anchor = GridBagConstraints.NORTHWEST;
  71.         getContentPane().add(jButton2, gridBagConstraints);
  72.  
  73.         if (hasNoErrors) {
  74.             // if no errors and only warnings, display ignore button.
  75.             jButton1.setText("Ignore"); // NOI18N
  76.             jButton1.setName("jButton1"); // NOI18N
  77.             gridBagConstraints = new GridBagConstraints();
  78.             gridBagConstraints.gridx = 1;
  79.             gridBagConstraints.gridy = 1;
  80.             gridBagConstraints.anchor = GridBagConstraints.NORTHWEST;
  81.             gridBagConstraints.fill = GridBagConstraints.NONE;
  82.             gridBagConstraints.insets = new Insets(18, 18, 19, 0);
  83.             getContentPane().add(jButton1, gridBagConstraints);
  84.         }
  85.  
  86.     }
  87.  
  88.     private void createDocumentStyles(StyleContext sc) {
  89.  
  90.         Style defaultStyle = sc.getStyle(StyleContext.DEFAULT_STYLE);
  91.         Style mainStyle = sc.addStyle(Message.DEFAULT_STYLE_NAME, defaultStyle);
  92.         StyleConstants.setFontFamily(mainStyle, "serif");
  93.         StyleConstants.setFontSize(mainStyle, 12);
  94.         StyleConstants.setLeftIndent(mainStyle, 10);
  95.  
  96.         Style boldStyle = sc.addStyle(Message.BOLD_STYLE_NAME, null);
  97.         StyleConstants.setBold(boldStyle, true);
  98.  
  99.         Style uppercaseUnderlineStyle = sc.addStyle(
  100.                 Message.UNDERLINE_STYLE_NAME, null);
  101.         StyleConstants.setUnderline(uppercaseUnderlineStyle, true);
  102.         StyleConstants.setUnderline(uppercaseUnderlineStyle, true);
  103.  
  104.     }
  105.  
  106.     protected void goBack(ActionEvent arg0) {
  107.         hide();
  108.  
  109.     }
  110.  
  111.     public void populateMessages() {
  112.  
  113.         List messages = new ArrayList();
  114.         messages.add(new LabelNotDefinedWarning("VD", "[VD-]"));
  115.         messages.add(new LabelNotInDraftWarning("TT", "[TT-]"));
  116.         Paragraph[] content = new Paragraph[messages.size()];
  117.         Iterator iterator = messages.iterator();
  118.         Message message = null;
  119.         int index = 0;
  120.         while (iterator.hasNext()) {
  121.             message = (Message) iterator.next();
  122.             content[index] = message.getParagraph();
  123.             index++;
  124.         }
  125.         addText(content);
  126.  
  127.     }
  128.  
  129.     private void addText(Paragraph[] content) {
  130.  
  131.         StyledDocument doc = jTextPane1.getStyledDocument();
  132.         Style logicalStyle = doc.getStyle(Message.DEFAULT_STYLE_NAME);
  133.         // The outer loop adds paragraphs, while the
  134.         // inner loop adds character runs.
  135.         int paragraphs = content.length;
  136.         for (int i = 0; i < paragraphs; i++) {
  137.             ParagraphPart[] paraParts = content[i].content;
  138.             for (int j = 0; j < paraParts.length; j++) {
  139.                 jTextPane1
  140.                         .setCharacterAttributes(
  141.                                 paraParts[j].styleName == null ? SimpleAttributeSet.EMPTY
  142.                                         : doc.getStyle(paraParts[j].styleName),
  143.                                 true);
  144.                 jTextPane1.replaceSelection(paraParts[j].content);
  145.             }
  146.  
  147.             // At the end of the paragraph, add the logical style and
  148.             // any overriding paragraph style and then terminate the
  149.             // paragraph with a newline.
  150.             jTextPane1.setParagraphAttributes(SimpleAttributeSet.EMPTY, true);
  151.  
  152.             if (logicalStyle != null) {
  153.                 jTextPane1.setLogicalStyle(logicalStyle);
  154.             }
  155.  
  156.             if (content[i].styleName != null) {
  157.                 jTextPane1.setParagraphAttributes(doc
  158.                         .getStyle(content[i].styleName), false);
  159.             }
  160.  
  161.             jTextPane1.replaceSelection("\n");
  162.             System.out.println("Textt: " + jTextPane1.getText());
  163.         }
  164.     }
  165.  
  166.     public static void main(String args[]) {
  167.         // java.awt.EventQueue.invokeLater(new Runnable() {
  168.         //
  169.         // public void run() {
  170.         final MessageDialog dialog = new MessageDialog(
  171.                 new javax.swing.JFrame(), true, true);
  172.         dialog.pack();
  173.  
  174.         dialog.addWindowListener(new java.awt.event.WindowAdapter() {
  175.  
  176.             public void windowClosing(java.awt.event.WindowEvent e) {
  177.                 System.exit(0);
  178.             }
  179.         });
  180.         // Document document = dialog.getTextPane().getDocument();
  181.         // try {
  182.         // int i = 0;
  183.         // while (i < 30) {
  184.         // i++;
  185.         // document.insertString(document.getLength(),
  186.         // "This is a test \n", new SimpleAttributeSet());
  187.         // }
  188.         // } catch (BadLocationException be) {
  189.         // be.printStackTrace();
  190.         // }
  191.         dialog.populateMessages();
  192.        
  193.         //dialog.getTextPane().revalidate();
  194.         System.out.println("TExt" + dialog.getTextPane().getText());
  195.         dialog.setVisible(true);
  196.  
  197.         // }
  198.         // });
  199.     }
  200.  
  201.     public JTextPane getTextPane() {
  202.         return jTextPane1;
  203.     }
  204.  
  205.     private JButton jButton1;
  206.     private JButton jButton2;
  207.     private JScrollPane jScrollPane1;
  208.     private JTextPane jTextPane1;
  209.     private boolean ignoreBool;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement