Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9031369
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 16, 20262026-06-16T07:42:57+00:00 2026-06-16T07:42:57+00:00

Hi all i’m new to JSF, I have created a java file, I need

  • 0

Hi all i’m new to JSF,

I have created a java file, I need this to run when a user presses a button on the XHTML page, how do i do this ? also are there any good tutorials for beginners like me out there for JSF ? Thanks 🙂

The JAVA code is a simple piece of code that allows a user to select a txt file and then print it.

The aim is to create a web app to allow printing of documents

Here is the JAVA code I wish to run:

import java.awt.*;
import java.awt.font.*;
import java.awt.geom.*;
import java.awt.print.*;
import java.text.*;
import java.io.*;
import javax.swing.*;
import java.util.List;
import java.util.ArrayList;

public class PrintText implements Printable {

    private String text; // Constructor argument for AttributedString.

    // Below the code will allow the user to select a file and then print out the contents of the file
    public static void main(String[] args) throws IOException {
        new PrintText();
    }

    public PrintText() {
        EventQueue.invokeLater(new Runnable() {
                @Override
                public void run() {
                    try {
                        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                    } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
                    }

                    //selects the file
                    JFileChooser chooser = new JFileChooser();
                    chooser.showOpenDialog(null);
                    File file = chooser.getSelectedFile();
                    String filename = file.getName();
                    //System.out.println("You have selected: " + filename);  testing to see if file seleected was right
                    String path = file.getAbsolutePath();

                    //Reads contents of file into terminal 
                    //FileReader fr = new FileReader("filename");
                    // FileReader fr = new FileReader("D:/Documents/" + "filename")); 

                    BufferedReader br = null;
                    try {
                        br = new BufferedReader(new FileReader(path));
                        StringBuilder stringBuilder = new StringBuilder();
                        String line;
                        while ((line = br.readLine()) != null) {
                            //System.out.println(line); //This is now not needed, was used to test to see if the contents was recieved corrently
                            stringBuilder.append(line).append("\n");
                        }
                        text = stringBuilder.toString();;

                        printer();
                    } catch (IOException exp) {
                        exp.printStackTrace();
                    } finally {
                        try {
                            br.close();
                        } catch (Exception e) { e.printStackTrace(); }
                    }
                    //fr.close(); 
                }
            });
    }
    //Testing 
    //private static final String mText = 
    //    "This is a test to see if this text will be printed "; //This works perfectly fine
    //AttributedString mStyledText = new AttributedString(mText);
    /**
     * Print a single page containing some sample text.
     */
    public void printer() {

        /* Get the representation of the current printer and 
         * the current print job.
         */
        PrinterJob printerJob = PrinterJob.getPrinterJob();
        /* Build a book containing pairs of page painters (Printables)
         * and PageFormats. 
         */
        Book book = new Book();
        book.append(this, new PageFormat());
        /* Set the object to be printed (the Book) into the PrinterJob.
         * Doing this before bringing up the print dialog allows the
         * print dialog to correctly display the page range to be printed
         * and to dissallow any print settings not appropriate for the
         * pages to be printed.
         */
        printerJob.setPageable(book);
        /* Show the print dialog to the user. If the user cancels the print dialog then false
         * is returned. If true is returned we go ahead and print.
         */
        boolean doPrint = printerJob.printDialog();
        if (doPrint) {
            try {
                printerJob.print();
            } catch (PrinterException exception) {
                System.err.println("Printing error: " + exception);
            }
        }
    }

    /**
     * Print a page of text.
     */
    public int print(Graphics g, PageFormat format, int pageIndex) {

        AttributedString mStyledText = new AttributedString(text);

        Graphics2D g2d = (Graphics2D) g;
        g2d.translate(format.getImageableX(), format.getImageableY());
        g2d.setPaint(Color.black);// Sets text colour
        Point2D.Float pen = new Point2D.Float();
        AttributedCharacterIterator charIterator = mStyledText.getIterator();
        LineBreakMeasurer measurer = new LineBreakMeasurer(charIterator, g2d.getFontRenderContext());
        float wrappingWidth = (float) format.getImageableWidth();
        while (measurer.getPosition() < charIterator.getEndIndex()) {
            TextLayout layout = measurer.nextLayout(wrappingWidth);
            pen.y += layout.getAscent();
            float dx = layout.isLeftToRight() ? 0 : (wrappingWidth - layout.getAdvance());
            layout.draw(g2d, pen.x + dx, pen.y);
            pen.y += layout.getDescent() + layout.getLeading();
        }
        return Printable.PAGE_EXISTS;
    }
}
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-16T07:42:58+00:00Added an answer on June 16, 2026 at 7:42 am

    You’re going in the wrong direction as to achieving the concrete functional requirement of selecting a file for upload and then displaying it using JSF.

    You’re trying to select a file using Swing/AWT. Whilst this may indeed be the right approach for desktop based applications, this is totally the wrong approach for web based applications. In web based applications, Java/JSF code runs in the webserver and produces a bunch of HTML/CSS/JS code which get sent over network to the webbrowser who in turn finally runs all that obtained HTML/CSS/JS code. Note thus that Java/JSF runs in the physical machine where the webserver runs. So, Swing/AWT would also run in the physical machine where the webserver runs and thus definitely not in the physical machine where the webbrowser runs. Basically, when Swing/AWT shows some UI, it would be shown in the monitor attached to the webserver, not the one attached to the webbrowser.

    You need to achieve your functional requirement in HTML/CSS/JS instead of in Java. You need to write JSF code in such way that it generates exactly the specific HTML/CSS/JS code suitable for the needed task.

    In your specific case, you want to upload a file and show its content. In HTML world, a file chooser is represented by the <input type="file"> element. In standard JSF, you can use <h:inputFile> component generate that HTML. Here’s a kickoff example:

    <h:form enctype="multipart/form-data">
        <h:inputFile value="#{bean.file}" />
        <h:commandButton value="Submit" action="#{bean.process}" />
        <h:messages />
    </h:form>
    <pre>#{bean.content}</pre>
    

    with this bean

    private Part file; // +getter+setter
    private String content; // +getter
    
    public void process() throws IOException {
        content = IOUtils.toString(file.getInputstream(), "UTF-8");
    }
    

    (note: IOUtils is part of Apache Commons IO, so the above code works as-is)

    See also:

    • Show ImageIcon from class to JSF page?
    • How to upload file using JSF 2.2 <h:inputFile>? Where is the saved File?
    • What is the need of JSF, when UI can be achieved with JavaScript libraries such as jQuery and AngularJS
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

All - Need some insight into this issue. I have created a sample project
I have a string like this: La Torre Eiffel paragonata all&#8217;Everest What PHP function
All, I have just reinstalled Java on my machine because I found I had
All, I have created a plugin that I will be using across several projects.
All , Say you have a code in a View like this. <img src='@Url.Action(GetCaptchaImg)'
ALL, I have a following code: In .h file: struct Foo { int ma;
All is in the question i have tried this : $('#my-div').css('box-shadow'); but it returns
All, I have a controller which saved the posted file(Please review below code). It
All, If I run a query like the following: $qry = Select wrong_column from
All -- I have these two methods in one of my classes: public static

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.