我对Java的布局管理器有一个恼人的问题.我有以下情况:在面板A中是另外两个具有绝对布局的面板B和具有FlowLayout的C. B是高度定制的,并具有固定的尺寸设置setPreferredSize.C应具有与B相同的固定宽度,否则具有可变高度,具体取决于流中添加的组件数量.结果A应该具有固定的宽度和高度 - 至少这是我想要的.A.height + B.height
然而,我得到的是面板A的宽度根本不固定(即使我设置了它的首选尺寸),面板C中的内容不是自动换行,而是以长行显示.当然,这也使得B具有比它应该更大的宽度.
我该怎么做才能解决这个问题?有没有更好的布局,还是我必须模仿所有使用绝对布局?
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JPanel;
public class Test extends JPanel
{
    public Test ()
    {
        this.setLayout( new BoxLayout( this, BoxLayout.Y_AXIS ) );
        JPanel top = new JPanel( null );
        top.setBackground( Color.GREEN );
        top.setPreferredSize( new Dimension( 200, 20 ) );
        JPanel flowPanel = …我想使用Python的csv编写器编写固定宽度,空格分隔和最低引用的CSV文件.输出的一个例子:
item1           item2  
"next item1"    "next item2"
anotheritem1    anotheritem2  
如果我使用
writer.writerow(("{0:15s}".format(item1),"{0:15s}".format(item2)))
...
然后,使用空格分隔符,由于项目格式的尾随空格,因此添加了引号或转义(取决于csv.QUOTE_*常量),格式化将被破坏:
"item1          " "item2          "
"next item1     " "next item2     "
"anotheritem1   " "anotheritem2   "
当然,我可以自己格式化所有内容:
writer.writerow(("{0:15s} {1:15s}".format(item1,item2)))
但是使用csv编写器并没有多大意义.此外,当空间嵌入到项目中并且应该使用引用/转义时,我必须手动整理这些情况.换句话说,似乎我需要一个(不存在的)"QUOTE_ABSOLUTELYMINIMAL"csv常量,它将充当"QUOTE_MINIMAL",但也会忽略尾随空格.
有没有办法实现"QUOTE_ABSOLUTELYMINIMAL"行为或使用Python的CSV模块获得固定宽度,空格分隔的CSV输出的另一种方法?
我想在CSV文件中使用固定宽度功能的原因是更好的可读性.因此,它将被处理为CSV以供读取和写入,但由于列结构而更易读.读取不是问题,因为csv skipinitialspace选项负责忽略额外的空格.令我惊讶的是,写作似乎是一个问题......
编辑:我得出结论,使用当前的csv插件是不可能实现的.它不是一个内置选项,我看不出任何合理的方法如何手动实现它,因为似乎没有办法由Python的csv编写器编写额外的分隔符而不引用或转义它们.因此,我可能要编写自己的csv编写器.
如何格式化表格行以继承内容的高度?我希望有类似的东西

我试过了
table{
   table-layout:fixed;
   width:700px;
 }
但这不起作用
从[UIFont boldSystemFontWithSize xx]调用的字体不是固定宽度,我不知道这个系统字体的确切名称(iOS 6).
我想知道是否有内置的固定宽度字体?否则我必须在我的应用程序中嵌入一个新字体.
PS:也许iOS 7系统字体是固定宽度的,LOL
多谢你们.
我有一些以多字节 UTF8 格式存储的字符串,我想将它们以固定宽度的空间打印到控制台。我这样做:
wprintf(L"////////////// BLOCK 1 ///////////////   ////////////// BLOCK 2 ///////////////   ////////////// BLOCK 3 ///////////////\n");
wprintf(L"// %-32S //   // %-32S //   // %-32S //\n", mymemcard[0].filename, mymemcard[1].filename, mymemcard[2].filename);
wprintf(L"// %-32S //   // %-32S //   // %-32S //\n", mymemcard[0].titleUTF, mymemcard[1].titleUTF, mymemcard[2].titleUTF);
wprintf(L"//////////////////////////////////////   //////////////////////////////////////   //////////////////////////////////////\n\n");
文件名变量采用 ASCII 格式并且工作正常,但如果 titleUTF 变量包含任何多字节字符,它们将打印得太短。我认为这是因为 wprintf 函数在计算宽度时包括多字节字符的每个字节。请参阅下面的输出:
THPS2 标题中的“破折号”字符实际上是一个半角日文字符,这就是在这种情况下破坏 wprintf 功能的原因。
我试过使用 "%-32lS" 但这会向控制台打印垃圾,我试过小写的 "s" 但这也会打印垃圾。即使使用多字节字符,如何获得固定宽度打印的任何想法?
编辑:
这是一个屏幕截图,显示了内存中的 titleUDF 变量,以及有问题的“THPS2”字符串字节:
如您所见,“破折号”字符表示为 0xef 0xbd 0xb0
值得注意的是,我必须调用:
SetConsoleCP(65001);
SetConsoleOutputCP(65001);
使多字节字符正确显示。此外,我必须将控制台中的字体更改为具有这些字符的字形的字体。我使用 NSimSun。
在Excel中,如果导入空格描述的文本,其中列不完美排列且数据可能丢失,例如
  pH             pKa/Em  n(slope) 1000*chi2      vdw0  
CYS-I0014_        >14.0                          0.00  
LYS+I0013_       11.827     0.781     0.440      0.18
您可以选择将其视为固定宽度列,Excel可以自动计算出列宽,通常效果非常好.Python中是否有一个库可以以类似的自动方式分解格式不正确的固定宽度文本?
编辑: 这是固定宽度文本导入在Excel中的样子.在第一步中,您只需选中"固定宽度"单选按钮,然后在第二步中Excel已自动添加了分栏符.唯一不能正确执行的是当每行中的每个列中没有至少一个空格字符重叠时.

我需要帮助使用xsl样式表将此xml格式化为固定宽度的文本文件.我对xsl知之甚少,并且在网上找到的关于如何做到这一点的信息非常少.
基本上我需要这个xml
<?xml version="1.0" encoding="UTF-8"?>
<Report>
   <table1>
      <Detail_Collection>
         <Detail>
            <SSN>*********</SSN>
            <DOB>1980/11/11</DOB>
            <LastName>user</LastName>
            <FirstName>test</FirstName>
            <Date>2013/02/26</Date>
            <Time>14233325</Time>
            <CurrentStreetAddress1>53 MAIN STREET</CurrentStreetAddress1>
            <CurrentCity>san diego</CurrentCity>
            <CurrentState>CA</CurrentState>
      </Detail_Collection>
   </table1>
</Report>
在这种格式中,所有都在同一行
*********19801111user         test       201302261423332553 MAIN STREET                                    san diego          CA
这些是固定宽度
FR TO
1   9     SSN
10  17    DOB
18  33    LastName
34  46    FirstName
47  54    Date
55  62    Time
63  90    CurrentStreetAddress1 
91  115   CurrentCity
116 131   CurrentStat
非常感谢所有帮助!提前致谢!
我一直在用unicode绘制量子电路,如下所示:
         ??H????????????????????
                 ?            ?   
??H??????????????X????????????????
    ?                         ? ? 
    ?                       ??XXX??????
    ?                         ??  
????X????????????X?/?????????????
                 ?            ?
         ??H????????????????????
正如你所看到的,我是在统一的优势箱图纸,下标,几何形状和数字形式的字符.也是好的ascii角色,但他们表现得非常好.
问题在于,当我将上述内容粘贴到文本区域时font-family: monospace,它可能会或可能不会将元素排成一行.使用我的Ubuntu计算机上的Chrome可以正常工作,但在我的Windows计算机上使用Chrome时,下标会略微缩小.抛弃了对齐,打破了电路,所以事物不再在视觉上连接.截图:

如何确保这些小图在主要浏览器和平台上排列?
在<pre>和<code>标签似乎工作好了,但我想编辑这些图表就地.我可以在textareas中使用那种造型吗?
我只需说font-family: no-like-REALLY-monospace-please-browser-spend-cpu-fixing-any-oversights吗?
如何使用GNU Unifont等自定义字体?我该怎么办?考虑到这样的完整字体有多大,它会有多贵?
注意:还有其他一些关于unicode和monospacing的问题,比如这个问题.大多数答案都是"unicode非常大,所以并非所有角色都能正常工作!" 并且"这是一个可能覆盖它的巨大字体!".我不认为那些不能解决我的问题,因为我不希望客户端下载兆字节大小的字体,我只需要一小部分unicode字符即可工作.
让我们说吧
numbers = [ 0.7653, 10.2, 100.2325, 500.9874 ]
我想通过改变小数位数来输出具有固定宽度的数字,以获得如下输出:
0.7653
10.200
100.23
500.98
是否有捷径可寻?我一直在试图用各种%f和%d配置,没有运气.
我有一个相当大的固定宽度文件(~30M 行,4gb),当我尝试使用 pandas read_fwf() 创建一个 DataFrame 时,它只加载了文件的一部分,并且很好奇是否有人遇到过类似的问题此解析器不读取文件的全部内容。
import pandas as pd
file_name = r"C:\....\file.txt"
fwidths = [3,7,9,11,51,51]
df = read_fwf(file_name, widths = fwidths, names = [col0, col1, col2, col3, col4, col5])
print df.shape #<30M
如果我天真地使用 read_csv() 将文件读入 1 列,则所有文件都将被读取到内存中,并且不会丢失数据。
import pandas as pd
file_name = r"C:\....\file.txt"
df = read_csv(file_name, delimiter = "|", names = [col0]) #arbitrary delimiter (the file doesn't include pipes)
print df.shape #~30M
当然,如果没有看到文件的内容或格式,它可能与我的事情有关,但想看看过去是否有人遇到过任何问题。我做了一个健全性检查并测试了文件深处的几行,它们似乎都被正确格式化(当我能够使用相同的规范将其拉入带有 Talend 的 Oracle DB 时进一步验证)。
如果有人有任何想法,请告诉我,通过 Python 运行所有内容而不是在我开始开发分析时来回走动会很棒。