我正在尝试使用com.google.common.base.Splitter,如下所示
Iterable<String> segs = Splitter.on("/").split("one/two/three/four/five");
for (String seg : segs) {
System.out.println(seg);
}
Run Code Online (Sandbox Code Playgroud)
但是,我看到以下异常:
Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Platform.precomputeCharMatcher(Lcom/google/common/base/CharMatcher;)Lcom/google/common/base/CharMatcher;
at com.google.common.base.CharMatcher.precomputed(CharMatcher.java:664)
at com.google.common.base.CharMatcher.<clinit>(CharMatcher.java:71)
at com.google.common.base.Splitter.<init>(Splitter.java:107)
at com.google.common.base.Splitter.on(Splitter.java:171)
at Test.main(Test.java:30)
Run Code Online (Sandbox Code Playgroud)
有谁知道我在这里做错了什么?
我正在尝试使用TextBox来填充可调整大小的列中的可用空间.TextBox是用户控件的一部分:
<UserControl x:Class="TextBoxLayout.FieldControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Label Grid.Column="0">Name</Label>
<TextBox Grid.Column="1"/>
</Grid>
</UserControl>
Run Code Online (Sandbox Code Playgroud)
此用户控件位于带垂直拆分器的窗口中:
<Window x:Class="TextBoxLayout.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:TextBoxLayout"
Title="Text box layout" Height="400" Width="600">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="100"/>
<ColumnDefinition Width="Auto"/>
<ColumnDefinition MinWidth="100"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition/>
</Grid.RowDefinitions>
<local:FieldControl Grid.Column="0" Grid.Row="0" MaxWidth="200" HorizontalAlignment="Left"/>
<TextBlock Grid.Column="0" Grid.Row="1" Text="Testing"/>
<GridSplitter Grid.Column="1" Grid.Row="0" Grid.RowSpan="2" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Width="3"/>
<TextBlock Grid.Column="2" Grid.Row="0" Grid.RowSpan="2" Text="Testing"/>
</Grid>
</Window>
Run Code Online (Sandbox Code Playgroud)
问题是TexTBox似乎非常狭窄 - 我想要它做的是填充左列并使用拆分器调整大小.我怎么做?
我想在两个可调整大小的面板之间放置一些按钮,或者如果可能的话直接放在分离器上.我如何实现他们将与分离器一起移动; 我该如何锚定他们?

编辑:
也许是我忘记提及的最重要的事情.分割器必须与屏幕截图一样宽,按钮应放在它上面; 所以这些按钮现在实际上是"浮动在分离器上".
非常感谢
我有一个包含三个部分的表单,我希望允许用户根据需要调整它们的大小
左侧有一个部分(占据整个高度),右侧有一个部分,再次垂直切割成两个部分.见下文:
11 | 22
11 | ---
11 | 33
使用一个分离器非常简单:
Component1.align := alLeft Splitter1.align := alLeft Component2.align := alClient
现在,从那开始我完全不知道如何使垂直分离器工作.如果我将我的第二个分离器设置为alTop或alBottom,它会一直到顶部/底部而不是在右半部分.
我设法得到这样的东西:
11111
--------
22 || 33
通过先创建垂直分割,然后创建水平分割,但这不起作用.
一种可能的解决方案是使用面板作为我的右侧,然后使用分割器INSIDE这个面板进行垂直分割,但它并不像真正的方式.
谢谢
我想初始化分离器手柄位置,如下所示,而不是在中间.我不能在房产中设置它.

怎么解决这个?
谢谢您的帮助.
我有这种情况(见图),现在当我Splitter1在运行时向上移动,Panel2身高增长,身高也Form1增长.
但是我需要知道并阻止这种类型的事件,当Splitter1由于Panel1.Constraints.MinHeight到达而无法向上移动时,所以Panel2不能改变它的高度Form1.
谢谢你的帮助.

- 编辑 -
Panel1.Align:= alLeft;
Splitter1.Align:= alBottom;
Panel2.Align:= alBottom;
是否有人可以建议替换WinForms SplitContainer的替代控件?我不喜欢SplitContainer在选中它和被拖动时如何显示奇怪的虚线条.我想让面板重新调整大小,因为用户拖动而不是鼠标向上,并且在拖动分割器时不显示任何虚线条.基本上就像在Vista浏览器中完成所有面板重新调整大小一样.
这是我所说的点缀的东西:

是否有任何应用程序的mac来拆分sql文件甚至脚本?我有一个大文件,我必须将其上传到托管,不支持超过8 MB的文件.
*我没有SSH访问权限
<p-button label="Add" (click)="onAddPanel()"></p-button>\n <p-splitter [style]="{'height': '100px'}" styleClass="p-mb-5">\n <ng-container *ngFor="let panel of panels">\n <ng-template pTemplate>\n <div class="p-col p-d-flex p-ai-center p-jc-center">\n {{panel.name}}\n </div>\n </ng-template>\n </ng-container>\n</p-splitter>\nRun Code Online (Sandbox Code Playgroud)\npanels = [ {name: 'Panel1'}, {name: 'Panel2'}, {name: 'Panel3'} ];\n\nonAddPanel() {\n this.panels = [...this.panels, ...[{name: `Panel${this.panels.length+1}`}] ];\n}\nRun Code Online (Sandbox Code Playgroud)\n如何绑定p-splitter到新集合并在事件触发时添加面板onAddPanel?\n我尝试过\xe2\x80\x9cprimeng\xe2\x80\x9d: \xe2\x80\x9c12.0.0\xe2\x80\x9d但没有成功。有人有任何解决方法吗?
我有一个对话框,其中列出了这样的内容:
---------------------------------------------
| |
| CONFIG AREA |
| Align: alTop |
--------------------------------------------- <-static boundary
| |
| DISPLAY AREA 1 |
| Align: alTop |
============================================= <-TSplitter Align: alTop
| |
| DISPLAY AREA 2 |
| align: alClient |
--------------------------------------------- <-bottom of dialog
Run Code Online (Sandbox Code Playgroud)
但是,在运行时,分割器不会显示在显示区域1和显示区域2之间,而是显示在配置区域和显示区域1之间,从而导致一些恼人的接口问题.表单中与设置相关的事件处理程序中没有任何内容可以改变任何这些组件的Visible或Align属性.有谁知道为什么分割器没有加载到它在表单设计器中的位置?