我遇到了这个问题.我有一个JPanel,通常我会像这样创建一个JLabel:
JLabel lblNewLabel = new JLabel("New label");
lblNewLabel.setBounds(0, 0, 135, 14);
panel.add(lblNewLabel);
Run Code Online (Sandbox Code Playgroud)
但我希望每次单击一个按钮,在该面板中创建一个具有相同大小但具有不同高度的新JLabel.我试过了:
panel.add(new JLabel(stringName));
Run Code Online (Sandbox Code Playgroud)
但这样我就无法设定它的界限.我从JTextField获取stringName.
有没有办法从填充文本jtextpane"提取"行数?如果有的话,如果某些行是由文本包装引起的吗?
我正试图找到一种方法将JDialog的所有内容替换为简单的图像.它是我正在处理的项目的大约页面,我希望当用户点击"关于"部分时,一个图像以JDialog的样式弹出(并在焦点丢失时消失).示例:http://www.tecmint.com/wp-content/uploads/2012/08/About-Skype.jpg Skype只显示他们创建的图像作为"关于"页面.如何在Java(swing)中创建"图像对话框"?
是否有可能获得输入文本的高度JTextPane?像素会很棒,但任何代表它的价值都可以.例如我输入了JTextPane这个:
Lorem Ipsum只是印刷和排版行业的虚拟文本.自16世纪以来,Lorem Ipsum一直是业界标准的虚拟文本,当时一台未知的打印机采用了类型的厨房,并将其拼凑成一本类型的样本.它不仅存在了五个世纪,而且还延续了电子排版,基本保持不变.它在20世纪60年代随着包含Lorem Ipsum段落的Letraset表格的推出而普及,最近还推出了包括Lorem Ipsum版本在内的Aldus PageMaker等桌面出版软件.
有没有办法获得它的长度值(不是它有多少行)?我需要这个,因为如果我在其中一行中输入图片,总高度会发生变化,我希望能够知道它的确切变化程度.的JTextPane,我用了一个StyledDocument,没有HTML.我做了一个SSCCE而不是图像,我使用了两种不同的字体大小来显示2的高度之间的差异JTextPanes.
public class Fonts extends JFrame {
private JPanel contentPane;
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
Fonts frame = new Fonts();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}
public Fonts() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setBounds(100, 100, 450, 300);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
JTextPane textPane …Run Code Online (Sandbox Code Playgroud) 我有以下简单的 CMake 项目。它基本上是一个动态链接到 Qt Widgets 的可执行文件(我使用 Qt 作为示例)。我想弄清楚是否可以使用 CMake 将所有链接库(不仅是当前项目构建的库)复制到可执行输出目录。
cmake_minimum_required(VERSION 3.12)
project(MyProject)
set(CMAKE_CXX_STANDARD 14)
set(QT_CMAKE_DIR "/Users/huser/Qt/5.11.1/clang_64/lib/cmake")
set(CMAKE_PREFIX_PATH ${CMAKE_MODULE_PATH} ${QT_CMAKE_DIR})
find_package(Qt5 REQUIRED COMPONENTS Widgets)
add_executable(${PROJECT_NAME} main.cpp)
target_link_libraries(${PROJECT_NAME} PUBLIC Qt5::Widgets)
set(EXECUTABLE_OUTPUT_PATH ${CMAKE_CURRENT_LIST_DIR}/build)
Run Code Online (Sandbox Code Playgroud)
问题是输出目录只包含 MyProject 可执行文件(这是预期的行为)。但是,如果我将该可执行文件分发给没有安装 Qt 的人,他们将无法打开它。因此,我只想将必要的库/框架与可执行文件捆绑在一起。
运行otool -L MyProject列出依赖项:
MyProject:
@rpath/QtWidgets.framework/Versions/5/QtWidgets
@rpath/QtGui.framework/Versions/5/QtGui
@rpath/QtCore.framework/Versions/5/QtCore
/usr/lib/libc++.1.dylib
/usr/lib/libSystem.B.dylib
Run Code Online (Sandbox Code Playgroud)
我正在寻找的是通过 CMake 在构建步骤之后立即将这 3 个框架复制到输出目录中的常用方法。这将导致以下目录结构:
build/
MyProject
QtWidgets.framework
QtGui.framework
QtCore.framework
Run Code Online (Sandbox Code Playgroud)
任何帮助将不胜感激!
我知道还有其他帖子,但它们不是关于java的.我要求的是一种检查字符串是否包含超过56个字符的单词的方法.我想在单词中插入一个""(可能在中间).我希望原始字符串中的空格保留在那里.(split("")对我没有帮助).