- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
嘿,我一直在编写一些代码,它允许用户选择一个文件,一个txt文件,然后读取文件的内容,然后将内容发送到打印机,本例是hp 8600,但是在编译时我收到错误,找不到符号 - 变量 mText,这是为什么,它应该从上面检索 mText,因为现在应该包含 txt 文件中的所有数据,我做错了什么?
代码:
import java.awt.*;
import java.awt.font.*;
import java.awt.geom.*;
import java.awt.print.*;
import java.text.*;
import java.io.*;
import javax.swing.*;
public class PrintText implements Printable {
// 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 {
//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"));
FileReader fr = new FileReader(path);
BufferedReader br = new BufferedReader(fr);
String mText;
while((mText = br.readLine()) != null) {
//Displays the contents of the file in terminal
System.out.println(mText);
}
//fr.close();
}
//private static final String mText =
// "This is a test to see if this text will be printed "; //This works perfectly fine
private static final AttributedString mStyledText = new AttributedString(mText);
/**
* Print a single page containing some sample text.
*/
static public void printer(String args[]) {
/* 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. This example has a single page containing
* text.
*/
Book book = new Book();
book.append(new PrintText(), 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. This is an optional step
* and need not be done if the application wants to perform
* 'quiet' printing. 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) {
/* We'll assume that Jav2D is available.
*/
Graphics2D g2d = (Graphics2D) g;
/* Move the origin from the corner of the Paper to the corner
* of the imageable area.
*/
g2d.translate(format.getImageableX(), format.getImageableY());
/* Set the text color.
*/
g2d.setPaint(Color.black);
/* Use a LineBreakMeasurer instance to break our text into
* lines that fit the imageable area of the page.
*/
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;
}
}
最佳答案
目前,mText
仅在 main
方法的范围内定义。如果您希望在 mStyledText
的构造函数中使用它,则需要将 mText
设为 static
类变量:
private static String mText;
拥有非final
static
类变量被认为是不好的做法,但是为什么不在print
中创建AttributedString
code> 方法只在需要时使用:
AttributedString mStyledText = new AttributedString(mText);
此外,main
方法中还有很多功能。我会将其移至类实例方法,您可以在其中完全避免使用任何静态
变量。
关于java - 找不到符号 - 变量 mText,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14006348/
使用 mtext 将文本添加到 R 图中 例如 mtext("my added text",side=1) 我怎样才能删除它? 最佳答案 制作另一个情节。 (毕竟它们很便宜)。 mtext像大多数基本
我想在我的情节中添加一个文本,以便一个字母, , 显得粗体。我从以下开始,但结果不是我需要的: plot(1:5,axes=F) mtext(c(only a should be bold),1:1,
我想知道 mtext() 有什么问题,我无法在绘图上方正确显示数字 G? 这是我的 R 代码: G <- .3333 ## but G can be anything as it comes from
嘿,我一直在编写一些代码,它允许用户选择一个文件,一个txt文件,然后读取文件的内容,然后将内容发送到打印机,本例是hp 8600,但是在编译时我收到错误,找不到符号 - 变量 mText,这是为什么
我试图设计一个秒表应用程序。有人告诉我应该使用处理程序。但我决定这样做。 在开始按钮的 onclick() 中,我放置了以下代码。 public static void delay(long mill
当我使用 TextView 小部件开发自定义小部件时,我想到了这个问题。 当显示mText(TextView的成员变量)时,究竟是什么时候? 我曾想过,就像其他小部件一样,如果我重写自定义小部件中的
我知道对你们中的一些人来说这将是快速而简单的。我只想使用 mtext() 获得水平 y 轴标签.我猜这与 adj 有关,但我一直在浪费过去 2 个小时试图弄清楚... 在以下示例中,我只希望 y 标签
我想用文件名注释我的图。与 plot()我用过 mtext : plot(1:10) mtext("File xy-12-34-56.csv", 4) 我怎样才能用 ggplot2 和 qplot 或
我正在使用 R 使用 image.plot 绘制一组图。一切正常,只是我无法让 mtext() 显示主标题。使用 matplot() 对一组图使用非常相似的代码工作正常。 我正在使用的代码如下。 op
显然,mtext()在 R 中不支持 srt其工作是 的参数旋转一段文字 . 我需要mtext()创建一个 第 4 侧的轴标题 我的 搬家绘图(即,要绘制的 值来自函数,因此它们会发生变化,绘图轴值
我想用文件名注释我的绘图。对于 plot(),我使用了 mtext: plot(1:10) mtext("File xy-12-34-56.csv", 4) 如何使用 ggplot2 和 qplot
我编写了一个 C 程序来测试并行进程上的一些消息队列。消息定义如下: typedef struct _Message{ long type; int some_number;
我正在尝试使用 mtext 在垂直轴上获取一个标签,该标签是水平读取的 (las=1) 并且位于轴的顶部。 我的尝试是使用las=1, adj=1。当我不指定 las=1 时,我可以获得所需的展示位置
代码包含一个结构,其中包含两个数据成员mtype 和mtext,MAXSIZE 是该变量的最大大小。我想将数据插入到 mtext 中。我也有代码,但我不知道 scanf("%[^\n]",sbuf.m
我是一名优秀的程序员,十分优秀!