Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
dragonwell8_jdk
提交
afe4b845
D
dragonwell8_jdk
项目概览
openanolis
/
dragonwell8_jdk
通知
3
Star
2
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
dragonwell8_jdk
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
You need to sign in or sign up before continuing.
提交
afe4b845
编写于
12月 05, 2013
作者:
L
lana
浏览文件
操作
浏览文件
下载
差异文件
Merge
上级
c1a30356
76378b08
变更
2
显示空白变更内容
内联
并排
Showing
2 changed file
with
158 addition
and
0 deletion
+158
-0
src/windows/classes/sun/awt/windows/WPathGraphics.java
src/windows/classes/sun/awt/windows/WPathGraphics.java
+8
-0
test/java/awt/print/PrinterJob/PrintGlyphVectorTest.java
test/java/awt/print/PrinterJob/PrintGlyphVectorTest.java
+150
-0
未找到文件。
src/windows/classes/sun/awt/windows/WPathGraphics.java
浏览文件 @
afe4b845
...
...
@@ -570,6 +570,10 @@ class WPathGraphics extends PathGraphics {
return
false
;
}
if
(
gv
.
getNumGlyphs
()
==
0
)
{
return
true
;
// nothing to do.
}
AffineTransform
deviceTransform
=
getTransform
();
AffineTransform
fontTransform
=
new
AffineTransform
(
deviceTransform
);
Font
font
=
gv
.
getFont
();
...
...
@@ -599,6 +603,10 @@ class WPathGraphics extends PathGraphics {
* device space.
*/
Point2D
.
Float
userpos
=
new
Point2D
.
Float
(
x
,
y
);
/* Add the position of the first glyph - its not always 0,0 */
Point2D
g0pos
=
gv
.
getGlyphPosition
(
0
);
userpos
.
x
+=
(
float
)
g0pos
.
getX
();
userpos
.
y
+=
(
float
)
g0pos
.
getY
();
Point2D
.
Float
devpos
=
new
Point2D
.
Float
();
/* Already have the translate from the deviceTransform,
...
...
test/java/awt/print/PrinterJob/PrintGlyphVectorTest.java
0 → 100644
浏览文件 @
afe4b845
/*
* Copyright (c) 1999, 2003, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*/
/*
* @test
* @bug 8029204
* @summary Tests GlyphVector is printed in the correct location
* @run main/manual=yesno PrintGlyphVectorTest
*/
import
java.io.*
;
import
java.awt.*
;
import
java.awt.event.*
;
import
java.awt.font.*
;
import
java.awt.geom.*
;
import
java.awt.print.*
;
public
class
PrintGlyphVectorTest
extends
Component
implements
Printable
{
public
void
drawGVs
(
Graphics
g
)
{
String
testString
=
"0123456789abcdefghijklm"
;
Graphics2D
g2d
=
(
Graphics2D
)
g
;
g2d
.
setColor
(
Color
.
black
);
Font
font
=
new
Font
(
"SansSerif"
,
Font
.
PLAIN
,
30
);
FontRenderContext
frc
=
g2d
.
getFontRenderContext
();
GlyphVector
v
=
font
.
createGlyphVector
(
frc
,
testString
);
float
x
=
50
f
,
y
=
50
f
;
g2d
.
drawGlyphVector
(
v
,
x
,
y
);
Rectangle2D
r
=
v
.
getVisualBounds
();
r
.
setRect
(
r
.
getX
()+
x
,
r
.
getY
()+
y
,
r
.
getWidth
(),
r
.
getHeight
());
g2d
.
draw
(
r
);
Point2D
p
;
// .Float p = new Point2D.Float();
for
(
int
i
=
0
;
i
<
v
.
getNumGlyphs
();
i
++)
{
p
=
v
.
getGlyphPosition
(
i
);
p
.
setLocation
(
p
.
getX
()+
50
,
p
.
getY
());
v
.
setGlyphPosition
(
i
,
p
);
}
x
=
0
;
y
+=
50
;
g2d
.
drawGlyphVector
(
v
,
x
,
y
);
r
=
v
.
getVisualBounds
();
r
.
setRect
(
r
.
getX
()+
x
,
r
.
getY
()+
y
,
r
.
getWidth
(),
r
.
getHeight
());
g2d
.
draw
(
r
);
}
public
void
paint
(
Graphics
g
)
{
g
.
setColor
(
Color
.
white
);
g
.
fillRect
(
0
,
0
,
getSize
().
width
,
getSize
().
height
);
drawGVs
(
g
);
}
public
Dimension
getPreferredSize
()
{
return
new
Dimension
(
600
,
200
);
}
public
int
print
(
Graphics
g
,
PageFormat
pf
,
int
pageIndex
)
{
if
(
pageIndex
>
0
)
{
return
Printable
.
NO_SUCH_PAGE
;
}
Graphics2D
g2d
=
(
Graphics2D
)
g
;
g2d
.
translate
(
pf
.
getImageableX
(),
pf
.
getImageableY
());
drawGVs
(
g2d
);
return
Printable
.
PAGE_EXISTS
;
}
public
static
void
main
(
String
arg
[])
throws
Exception
{
Frame
f
=
new
Frame
();
PrintGlyphVectorTest
pvt
=
new
PrintGlyphVectorTest
();
f
.
add
(
"Center"
,
pvt
);
f
.
add
(
"South"
,
new
PrintInstructions
());
f
.
pack
();
f
.
show
();
}
}
class
PrintInstructions
extends
Panel
implements
ActionListener
{
static
final
String
INSTRUCTIONS
=
"You must have a printer installed for this test.\n"
+
"Press the PRINT button below and OK the print dialog\n"
+
"Retrieve the output and compare the printed and on-screen text\n"
+
" to confirm that in both cases the text is aligned and the boxes\n"
+
"are around the text, not offset from the text."
;
PrintInstructions
()
{
setLayout
(
new
GridLayout
(
2
,
1
));
TextArea
t
=
new
TextArea
(
INSTRUCTIONS
,
8
,
80
);
add
(
t
);
Button
b
=
new
Button
(
"PRINT"
);
b
.
setFont
(
new
Font
(
"Dialog"
,
Font
.
BOLD
,
30
));
b
.
addActionListener
(
this
);
add
(
b
);
}
public
void
actionPerformed
(
ActionEvent
e
)
{
PrinterJob
pj
=
PrinterJob
.
getPrinterJob
();
if
(
pj
==
null
||
pj
.
getPrintService
()
==
null
||
!
pj
.
printDialog
())
{
return
;
}
pj
.
setPrintable
(
new
PrintGlyphVectorTest
());
try
{
pj
.
print
();
}
catch
(
PrinterException
ex
)
{
System
.
err
.
println
(
ex
);
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录